7 時間ごとに実行されるバックグラウンド ジョブがあり、API 呼び出しに約 1 ~ 3 秒かかります。設定のバッテリー セクションを見ると、ジョブが過去 20 時間で 40 分間バックグラウンドで実行されていることがわかります。
バックグラウンド フェッチのシミュレートは問題なく機能し、数秒以内に完了を呼び出します。
なぜそれがあまりにも長く実行されているのか分かりますか?
NSTimeInterval backgroundFetchTimeInterval = 7 * 3600;
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:backgroundFetchTimeInterval];
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[[SyncManager sharedManager] performSyncWithCompletion:^(NSArray *results, NSError *error) {
if (error) {
completionHandler(UIBackgroundFetchResultFailed);
}
else {
if (resultCount > 0) {
completionHandler(UIBackgroundFetchResultNewData);
}
else {
completionHandler(UIBackgroundFetchResultNoData);
}
}
}];
}