从后台杀死应用程序后iOS更新位置

时间:2015-08-13 10:51:20

标签: ios swift

在我的项目中,我想跟踪用户位置。为此,我想基于位置准确度更新用户当前位置(对于高 - > 15分钟和低 - > 1小时)。当应用程序运行或在后台比我可以更新位置但在从后台杀死应用程序后,无法更新位置。我使用计时器来调用它,但在杀死应用程序(从后台)后,它不起作用。

现在,如果用户不在后台运行app,我会根据位置准确性更新位置。

请提出任何建议。

3 个答案:

答案 0 :(得分:2)

CoreLocation有2个允许:

  1. 一个用于用户使用该应用程序。
  2. 第二个是即使未使用也会更新位置。
  3. 使用第二个,例如GPS使用的那个。但是,如果您杀死将要停止更新位置的应用程序。

答案 1 :(得分:1)

您需要将NSLocationAlwaysUsage密钥添加到您的应用程序info.plist,然后在您希望开始监控时请求权限。

请务必详细说明为什么要始终监控bc我认为这确实有助于提高转换率。

答案 2 :(得分:0)

    locationManager = [[CLLocationManager alloc] init];
    #define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

    if(IS_OS_8_OR_LATER)
    {
        [locationManager requestWhenInUseAuthorization];
    }

    locationManager.delegate = self;
    locationManager.distanceFilter = kCLDistanceFilterNone; //whenever we move
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;

    [locationManager startUpdatingLocation];

代码用户位置仅更新forground app运行但不运行后台运行

        if(IS_OS_8_OR_LATER)
        {
            [locationManager requestWhenInUseAuthorization];
        }