2

我制作了一个将一堆照片上传到网络服务器的应用程序。它通过重复的 html 调用,在操作队列中使用多个 AFNetworking 的 AFHTPRequestOperation 来实现。现在,用户退出应用程序,队列停止。但是,我想继续上传队列直到完成,然后让应用程序像往常一样进入睡眠状态。

我知道 iOS 使用 "beginBackgroundTaskWithExpirationHandler" 提供了一个后台过期处理程序。我也知道 AFURLConnectionOperation 是 AFNetworking 中每个 HTTP 操作类的超类,可以使用它

- (void)setShouldExecuteAsBackgroundTaskWithExpirationHandler:(void (^)(void))handler

但是有什么方法可以使用操作队列来完成这项工作吗?如果我想上传,比如 10 张照片,设置每个操作的过期处理程序会正确完成这项工作吗?

如果有人对 AFNetworking 的后台任务提出任何意见,或者是否有人遇到与我相同的问题,我将不胜感激。

4

1 回答 1

4

当应用程序进入后台时,操作系统将决定是完全停止您的应用程序还是给它一些时间来完成它正在做的事情。如果它希望您的应用程序停止,则会调用到期处理程序。如果发生这种情况,您应该尽快暂停所有任务并准备完全终止应用程序,因为这将在很短的时间内(最多 5 秒)发生。看看这里

于 2012-11-28T19:42:16.930 回答