我制作了一个将一堆照片上传到网络服务器的应用程序。它通过重复的html调用,在操作队列中使用多个AFNetworking的AFHTPRequestOperation来实现。此时,用户退出应用程序后,队列将停止。但是,我想继续上传队列,直到完成,然后让应用程序像往常一样进入休眠状态。
我知道iOS使用“beginBackgroundTaskWithExpirationHandler”提供后台过期处理程序。我也知道AFURLConnectionOperation是AFNetworking中每个HTTP操作类的超类,可以使用
- (void)setShouldExecuteAsBackgroundTaskWithExpirationHandler:(void (^)(void))handler
但有没有办法让这个工作与一个操作队列?如果我想上传,设置每个操作的到期处理程序是否可以正常工作,让我们说10张照片?
如果有任何关于AFNetworking的后台任务的评论,或者如果有人遇到与我相同的问题,我将不胜感激。
答案 0 :(得分:4)
当应用程序进入后台时,操作系统将决定是否完全停止您的应用程序或给它一些时间来完成它正在做的事情。如果它希望您的应用程序停止,则调用过期处理程序。如果发生这种情况,您应该尽快暂停所有任务并准备完全杀死应用程序,因为这将在很短的时间后发生(最多5秒)。看看here。