我希望在背景中跟踪时获得蓝色条,但不希望在背景中跟踪时获得蓝色条.
我的应用在激活时一直使用位置服务,所以在iOS8中,我使用CLLocationManager
上的requestWhenInUseAuthorization
.通常,当你关闭应用程序时,它会停止跟踪你的位置,但用户也可以 Select 让应用程序在后台跟踪他的位置.因此,我在信息中有UIBackgroundModes
的location
选项.plist文件.这非常有效:当切换到后台时,应用程序会不断获得位置更新,并且会出现一个蓝色条,提醒应用程序正在使用位置服务.一切都很完美.
但问题是,当用户没有 Select 在后台跟踪时,蓝色条也会出现.在这种情况下,我只需在进入后台时停止AppDelegate的位置更新:
- (void) applicationDidEnterBackground:(UIApplication *)application
{
if (!trackingInBackground) {
[theLocationManager stopUpdatingLocation];
}
}
在关闭应用程序后,蓝色条只会显示一秒钟,但它看起来仍然很烦人.
我知道用requestAlwaysAuthorization
而不是requestWhenInUseAuthorization
可以解决这个问题,但这样我就不会得到任何蓝色条,也不会在背景跟踪实际打开时得到任何蓝色条.
我已经在applicationWillResignActive:
法中try 了stopUpdatingLocation
,但这没有什么区别.
有人知道在背景中跟踪时如何获得蓝色条,但不知道在背景中跟踪时如何获得蓝色条吗?