我在我的应用程序中使用区域监控,我遇到了一个问题,我找不到任何答案。区域监控如何在后台模式下工作?
根据位置意识PG:
每次用户的当前位置 穿过边界区域,即系统 生成适当的区域事件 为您的应用程序。如果你的 应用程序已在运行,这些 事件直接发送给代表 任何当前的位置管理器对象 如果您的应用程序未运行, 系统启动它 背景,以便它可以回应。
现在,这个问题是:我的应用程序处于暂停模式,已输入某个区域并应传递触发器,此事件是否会“直接”发送给代理人:
locationManager:didEnterRegion:
??同样的问题,如果应用程序处于后台模式。换句话说,在挂起和后台模式下我是否应该考虑接收此事件的代码?或iOS将首先启动应用程序,然后直接将事件发送给代表,而无需任何BG代码?
答案 0 :(得分:1)
区域监控如果您处于后台,则在您进入受监控区域时重新启动应用程序。
但是,您必须在应用重新启动后再次配置您的位置管理器。
这样的事情 -
if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey] )
{
NSLog(@"Relaunched due to location update");
NSLog(@"app woke up times ---- %d",ForTest);
NSLog(@"Starting the location manager");
self.locmanager = [[CLLocationManager alloc] init];
[self.locmanager startMonitoringForRegion:(CLRegion)*region];
// self.locmanager.pausesLocationUpdatesAutomatically = YES ;
}
答案 1 :(得分:0)
据我所知,区域监控仅适用于iPhone4,它基于改变通信塔的设备。这样,它比标准背景位置更新使用更少的电池。 确保启用了适当的背景模式。只要你实现该代表,就应该准备好了。
答案 2 :(得分:-1)
启用后台模式 在其中启用位置更新和后台提取