Geo*_*roy 11 iphone core-location ipad ios iphone-4
我目前正在开发一个iPhone应用程序,它需要各种用途的定位服务,包括AR.
我在模拟器和iPhone 3GS上测试一切,一切顺利.
我最近在iPhone4和iPad2上进行了测试,即使手动杀死应用程序,位置服务(状态栏中的小图标)仍然显示!禁用此图标的唯一方法是在设置中手动停止我的应用的位置服务.
有谁知道这件事?如果需要,我可以发布我的代码.
先感谢您
编辑:
当我终止应用程序时,转到位置服务,关闭我的应用程序,位置图标消失.但是当我重新打开它时,它会重新出现!这是正常的吗?
听起来你是应用程序进入后台仍然使用CLLocation.当您收到应用程序正在退出活动的通知时,您可以停止CLLOcationManager,这是最好的方法.然后在它变为活动状态时恢复.这个问题的答案显示了如何在这里做到这一点
[编辑]当您的应用程序进入后台或因任何原因(例如:电话)激活时,您应该停止当时的位置服务.您需要订阅通知并提供停止和启动位置服务的方法,如下所示:
-(void)appDidBecomeActiveNotif:(NSNotification*)notif
{
[locationManager startUpdatingLocation];
}
-(void)appWillResignActiveNotif:(NSNotification*)notif
{
[locationManager stopUpdatingLocation];
}
-(void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidBecomeActiveNotif:) name:UIApplicationDidBecomeActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActiveNotif:) name:UIApplicationWillResignActiveNotification object:nil];
}
-(void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
我找到了答案!它来自我之前启用的区域监控,但几周前删除了使用它的所有代码.
由于我已经在iPad上进行了测试,即使我删除并重新安装了应用程序,系统似乎也保留了我监控的区域信息.
因此,如文档所述,iOS继续定位我的应用程序,就像startMonitoringSignificantLocationChanges一样.
感谢您的回答,它让我更好地了解了定位系统以及如何有效地使用它(特别感谢progrmr和Bill Brasky)
| 归档时间: |
|
| 查看次数: |
9229 次 |
| 最近记录: |