【发布时间】:2011-09-09 21:29:27
【问题描述】:
我正在尝试基于计时器在后台实现位置更新。我对 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 中添加了关键的“位置”以支持背景模式
添加它是否只是保证我的应用程序在一定时间内不会被终止,以便我可以保持计时器运行?或者我在哪里添加要在后台模式下执行的方法。
【问题讨论】:
标签: iphone objective-c ios core-location