在后台模式下的iOS区域监控
我在我的应用程序中使用区域监视,我面临一个问题,我找不到任何答案。 区域监控如何在后台模式下工作?
根据地点意识PG:
每当用户的当前位置穿过边界区域,系统就会为您的应用程序生成适当的区域事件。 如果您的应用程序已经运行,则这些事件直接转到任何当前位置pipe理器对象的委托。 如果您的应用程序没有运行,系统将在后台启动它,以便它可以响应。
现在,这个问题是:我的应用程序处于暂停模式,一个区域已经被input,并且应该传递一个触发器,这个事件是否会直接发送给委托人:
locationManager:didEnterRegion:
?? 同样的问题,如果应用程序在后台模式。 换句话说,有什么代码我应该考虑在暂停和后台模式来接收这个事件? 或者iOS将首先启动应用程序,然后将事件直接发送给代理,而不需要BG代码?
区域监控如果您在后台进入监控区域,请重新启动您的应用程序。
但是在应用程序重新启动后,您必须再次configuration您的位置pipe理器。
像这样的东西 –
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 ; }
据我所知,地区监测只适用于iPhone4,它是基于设备改变通信塔。 这样它使用比标准的后台位置更新更less的电池。 确保你启用了适当的背景模式。 只要你实施这个委托,你应该准备好去。
启用后台模式,启用位置更新和后台提取