iOS 7 で新しいバックグラウンド フェッチ モードを使用しています。ユーザーのクラッシュ ログには、次のようなものがたくさんあります。
MyApp[11893] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x176afef0> identifier: Background Content Fetching (3281) process: MyApp[11893] permittedBackgroundDuration: 30.000000 reason: backgroundContentFetching owner pid:33 preventSuspend preventThrottleDownUI preventIdleSleep preventSuspendOnSleep
)}
更新に許可された 30 秒よりも長い時間がかかり、システムによって強制終了されているため、これが発生していると思います。明らかに多くの外的要因に依存しているため、取得に 30 秒未満かかることを保証するためにできることは何もありません。
さて、これは非常に合理的な動作のように思えますが、ログをクラッシュさせたり汚染したりする必要がありますか? 時間を監視して、時間が不足し始めた場合は早め[UIApplication sharedApplication].backgroundTimeRemaining
に連絡する必要がありますcompletionHandler
か、それとも正しく行っていますか?