这就是我在应用程序进入后台时启动后台任务的方式,
void applicationDidEnterBackground:(UIApplication *)application
{
btId = UIBackgroundTaskInvalid;
UIApplication* cuiApplication = [UIApplication sharedApplication];
void (^backgroundTimeRemainingExtenderHandler)() = ^() {
NSTimeInterval timeRemaining1 = [cuiApplication backgroundTimeRemaining];
if(btId != UIBackgroundTaskInvalid){
[proximityEngine StopEngine];
[cuiApplication endBackgroundTask:btId];
btId = UIBackgroundTaskInvalid;
}
};
btId= [cuiApplication beginBackgroundTaskWithExpirationHandler:backgroundTimeRemainingExtenderHandler];
if(bgmanager != nil){
[bgmanager BeginBackgroundTaskMainLoop];
}
}
我的问题是当我的后台任务调用时:
NSURLConnection 发送同步请求
即使有更多的剩余时间,也会调用到期块,我该如何防止这种情况?
问候 ,
詹姆士
编辑 :
阅读下面的答案后:查询剩余时间时,我还有 596 秒,但 IOS 仍然调用过期块处理程序。