即使我在“必需的后台模式”下的plist中放置了“用于位置更新的应用程序注册”,我的iOS应用程序有时也会被杀死。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSDate *dateEnteredIntoBackground = [NSDate date];
FSLog(@"*** ENTERING BACKGROUND ***");
[application beginBackgroundTaskWithExpirationHandler:^{
NSDate *dateOfTermination = [NSDate date];
}];
}
在监视上面的代码时,当它确实被踢出时,NSDate对象始终相隔10分钟。
但是:为了使事情更加混乱,我遇到很多情况,该应用程序很乐意在后台运行30分钟以上而不会终止。作为一项额外的测试,我将iPhone放在了法拉第笼中,以确保不调用位置委托更新(通过回读书面日志文件来确认);因此似乎可以排除。
有任何线索/建议吗?
谢谢
卡尔
最佳答案
实际上,您必须请求新的位置才能防止您的应用被暂停。如果您在一定时间内未请求新位置,iOS将暂停您的应用。
作为解决方法,您可以执行以下操作:
不断要求一个新的位置(最迟到期)
处理程序)
使用“重大更改位置服务”,它将唤醒您
每当位置改变
可以在"App States and Multitasking"和"Making your App Location Aware"中找到更多详细信息,它们都是Apple官方文档的一部分。