Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS中在后台实现长时间运行的任务?_Ios - Fatal编程技术网

如何在iOS中在后台实现长时间运行的任务?

如何在iOS中在后台实现长时间运行的任务?,ios,Ios,最近我收到客户的要求,要求我们在后台处理一些执行。此执行可能持续10分钟或20分钟 有没有办法做到这一点?我知道iOS已经列出了一些应用类型&只有那些可以在后台运行的应用。但我检查了&我的应用程序不适合列出所有应用程序类型。所以现在我对此表示怀疑 有人有解决办法吗 谢谢 Shyam使用后台提取功能可用 后台提取模式每10分钟执行一次 请参阅此处的示例代码: 忘记了上面教程中的beginBackgroundUploadTask方法。//尝试以下方法: dispatch_async(dispatch

最近我收到客户的要求,要求我们在后台处理一些执行。此执行可能持续10分钟或20分钟

有没有办法做到这一点?我知道iOS已经列出了一些应用类型&只有那些可以在后台运行的应用。但我检查了&我的应用程序不适合列出所有应用程序类型。所以现在我对此表示怀疑

有人有解决办法吗

谢谢
Shyam

使用后台提取功能可用

后台提取模式每10分钟执行一次

请参阅此处的示例代码:

忘记了上面教程中的beginBackgroundUploadTask方法。

//尝试以下方法:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul), ^(void) {
      // Perform long running process

dispatch_async(dispatch_get_main_queue(), ^{
      // Update the UI

});
});
 // Continue doing other stuff

看看这一部分“执行有限长度任务”,我认为这解决了您的问题。因为你有一个不是无限的背景任务,你可以要求更多的时间来完成这个任务task@user3347272检查我的ans.José的链接是最好的解决方案。您的需求没有完整的解决方案。您不能在后台长时间运行iOS应用程序。AppStore明确禁止这样做,即使你想出了一些棘手的解决办法。不管怎样,运行10-20分钟的图像处理对iPhone来说电池消耗太多了。这不适合在设备上执行。我的后台任务不是从internet下载某些内容。我的后台任务在本地运行,并在后台执行一些图像处理。所以在这里,这个后台获取无法工作。后台获取只给您几秒钟的时间来下载一些数据。它不适合运行任意长的进程。仅仅因为你要求10分钟并不意味着你就能得到它。系统可以并且确实限制您的速率。它是否有助于无限期地运行长时间运行的任务?此代码与在前台运行应用程序时运行后台队列有关。我相信这里的问题是,当应用程序本身处于后台时,如何运行进程。