iPhone应用GPS箭头中的定位服务问题不会消失

Posted

技术标签:

【中文标题】iPhone应用GPS箭头中的定位服务问题不会消失【英文标题】:Location service issue in iphone app GPS arrow does not disapper 【发布时间】: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在逻辑上不同。

【问题讨论】:

【参考方案1】:

你检查过你的项目设置Background Modes吗?

尝试在解决方案面板中单击您的项目,转到Capabilities 选项卡并选择Background Modes

然后选择适合你应用的模式(我猜你至少需要开启Location updates

【讨论】:

我部分找到了答案。在 4.0.0 版(以上代码)中,我有 startMonitoringSignificantLocationChanges 。根据 Apple 的说法,如果您启动此服务并且您的应用程序随后被终止,如果有新事件到达,系统会自动将应用程序重新启动到后台。【参考方案2】:

要使图标消失,您的应用必须停止定位服务,尤其是当应用使用后台模式时:

呼叫:

stopUpdatingLocation

进入后台时。然后几秒钟后,图标会消失。

对于重要的位置模式,它是不同的。 当检测到 sig Loctaion 更改并且您的应用程序尚未运行时,您的应用程序始终会重新启动。因此,要使图标消失,您必须停止重要的定位服务。

【讨论】:

感谢您对 Alex 的评论但是我想知道为什么 4.0.0 到 4.0.1 的应用程序没有按预期工作!如果我删除了应用程序(4.0.0)并且所有相关数据都应该被删除!!为什么我需要在某些 iOS (6) 上重置定位服务!!希望我解释正确!

以上是关于iPhone应用GPS箭头中的定位服务问题不会消失的主要内容,如果未能解决你的问题,请参考以下文章

“寻找我的朋友”式 GPS(远程 ping 定位)

为啥 iPhone GPS 箭头出现在状态栏中,即使我没有在位置管理器上调用 startUpdatingLocation?

是否可以使用 iPhone 中的 gps 找到当前位置的出租车等可用服务 [关闭]

从 onPause Android 调用删除更新时 GPS 图标不会消失

视图不会从 iPad 上消失,但在 iPhone 上可以正常工作

可以连续轮询 iPhone 获取 GPS 坐标吗?