我的iOS应用程序有时会被杀死,即使我在“必需的背景模式”下的plist中放置了“应用程序寄存器进行位置更新”。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSDate *dateEnteredIntoBackground = [NSDate date];
FSLog(@"*** ENTERING BACKGROUND ***");
[application beginBackgroundTaskWithExpirationHandler:^{
NSDate *dateOfTermination = [NSDate date];
}];
}
在监视上面的代码的同时,当它被踢出时,NSDate对象总是相隔10分钟。
然而:为了让事情更加令人困惑,我很多时候应用程序很乐意在后台运行超过30分钟而不会终止。作为一项额外的测试,我将iPhone置于法拉第笼中,以确保不会调用位置代理更新(通过回读书面日志文件来确认);所以似乎可以排除。
任何线索/建议?
由于
卡尔。
答案 0 :(得分:5)
您实际上必须请求新位置以防止您的应用被暂停。如果您在一段时间内未申请新位置,iOS将暂停您的应用。
作为解决方法,您可以执行以下操作:
更多详细信息可以在"App States and Multitasking"和"Making your App Location Aware"中找到,这两者都是Apple官方文档的一部分。