【问题标题】:Location service going to "Inactive" state in iPhone 5iPhone 5 中的定位服务进入“非活动”状态
【发布时间】:2013-10-24 08:57:02
【问题描述】:

甚至我的应用也在后台注册位置更新。

在我的代码中:

self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;
self.locationManager.distanceFilter = 2500;

而且我没有搬到任何地方。因此,在控制台日志中正好 15 分钟后,我收到了这条消息 "Location icon now should be in state 'Inactive'" 。从此时起,我的应用程序不再在后台运行。

这种情况只发生在 iPhone 5 中。

@更新了

这是我的代码

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager setPurpose:@"Enable Location service for \"My App\" to track your"];
self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;

/* Notify changes when device has moved x meters.
 * Default value is kCLDistanceFilterNone: all movements are reported.
 */
self.locationManager.distanceFilter = 2500;
[self.locationManager startUpdatingLocation];

【问题讨论】:

    标签: ios objective-c core-location cllocationmanager


    【解决方案1】:

    当定位服务处于非活动状态时,您的应用是否在后台?

    如果您不想在后台暂停位置更新,则需要设置 pausesLocationUpdatesAutomatically 标志,

    if ([self.locationManager respondsToSelector:@selector(pausesLocationUpdatesAutomatically)]) {
        self.locationManager.pausesLocationUpdatesAutomatically = NO;
    }
    

    【讨论】:

    • @Bhumeshwerkatre 好的,这里我使用了 self.locationManager,你需要使用你的 CLLocationManager 对象。
    • 是的,当应用程序在后台运行时,我收到“位置图标现在应该处于‘非活动’状态”。我会试试这个代码。
    • 但有一件事,相同的代码适用于 iPhone 4 和 iOS 6 以上。在 iPhone 4 中,它不会停止接收位置更新。
    【解决方案2】:

    自 iOS 6 起,Apple 已将 @property(assign, nonatomic) BOOL pausesLocationUpdatesAutomatically 添加到 CLLocationManager。默认值为YES。将此属性的值更改为NO,位置跟踪将不会在后台停止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多