如何在iOS中在后台实现长时间运行的任务?
最近我收到客户的要求,要求我们在后台处理一些执行。此执行可能持续10分钟或20分钟 有没有办法做到这一点?我知道iOS已经列出了一些应用类型&只有那些可以在后台运行的应用。但我检查了&我的应用程序不适合列出所有应用程序类型。所以现在我对此表示怀疑 有人有解决办法吗 谢谢如何在iOS中在后台实现长时间运行的任务?,ios,Ios,最近我收到客户的要求,要求我们在后台处理一些执行。此执行可能持续10分钟或20分钟 有没有办法做到这一点?我知道iOS已经列出了一些应用类型&只有那些可以在后台运行的应用。但我检查了&我的应用程序不适合列出所有应用程序类型。所以现在我对此表示怀疑 有人有解决办法吗 谢谢 Shyam使用后台提取功能可用 后台提取模式每10分钟执行一次 请参阅此处的示例代码: 忘记了上面教程中的beginBackgroundUploadTask方法。//尝试以下方法: dispatch_async(dispatch
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分钟并不意味着你就能得到它。系统可以并且确实限制您的速率。它是否有助于无限期地运行长时间运行的任务?此代码与在前台运行应用程序时运行后台队列有关。我相信这里的问题是,当应用程序本身处于后台时,如何运行进程。