これは、アプリケーションがバックグラウンドになったときにバックグラウンド タスクを開始する方法です。
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 sendSynchronousRequest
残り時間が残っているにもかかわらず、期限切れブロックが呼び出されています。これを防ぐにはどうすればよいですか?
よろしく ,
ジェームズ
編集 :
以下の回答を読んだ後: 残り時間を照会すると、まだ 596 秒残っていますが、IOS は有効期限ブロック ハンドラを呼び出します。