我在 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