【发布时间】:2014-01-29 14:49:32
【问题描述】:
我有一个使用定位服务的应用程序。 代码如下:
版本 4.0.0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startMonitoringSignificantLocationChanges];
//some other code
}
一旦应用进入后台位置,状态栏中的图标不会消失。
版本 4.0.1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];
//some other code
}
现在的问题:
1) 将现有应用 (4.0.0) 更新到新版本 4.0.1 后,一旦应用进入后台,位置图标将停止显示在状态栏中。
但是,在某些设备(特别是 iOS6)中,图标不会消失。但是通过设备重置位置服务后:设置>常规>重置>重置位置和隐私
新应用程序版本 4.0.1 图标确实会在应用程序进入后台模式 10 秒后消失。
我想知道为什么会这样?为什么某些 iOS 或设备用户必须重置定位服务。
版本 4.0.2
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager stopMonitoringSignificantLocationChanges];
[locationManager startUpdatingLocation];
//some other code
}
2) 如果应用程序直接从 4.0.0 更新到 4.0.2,我不需要重置 Lcoation。 应用程序进入后台模式 10 秒后,位置图标将消失。为什么这与问题1在逻辑上不同。
【问题讨论】: