我正在尝试基于计时器在后台实现位置更新。我知道iOS中不同的位置更新方法,并尝试过它们,但它们并不适合需要。我需要经常检查位置,即使没有活动。我尝试过使用计时器但它们不在后台执行。这导致我发现了这个问题How do I get a background location update every n minutes in my iOS application?,它提到了使用
UIApplication:beginBackgroundTaskWithExpirationHandler:
我的问题是你如何使用这种方法?我搜索过苹果文档,但在处理后台执行和位置更新时没有示例,它们会递归地指向对方。
我现在根据我发现的一些例子获得此代码:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
locationUpdater=[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:locationUpdater];
locationUpdater=UIBackgroundTaskInvalid;
} ];
}
我已在.plist中为支持的后台模式添加了关键“位置”
添加这个只是保证我的应用程序不会被杀死一段时间,所以我可以保持计时器运行吗?或者我在哪里添加在后台模式下执行的方法。