位置更新在后台模式下不起作用 iOS 7.0 在 iPhone4s 和 iPhone5 中,而 iPhone 处于理想状



我正在开发一个跟踪应用程序,因为我使用位置管理器服务和

设置所需精度 = kCLLocation精度最近十米

和距离过滤器 = 60.0。

我想提供背景支持。 为此,我

设置应用寄存器以进行位置更新,

应用从网络下载内容

在我的信息列表中,我把

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

此代码在 didFinishLaunchingWithOptions 方法中。

我也使用此方法进行呼叫启动更新位置位置管理器方法

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

这一切都适用于带有iPhone4的iOS 7

但是我在iPhone4S和iPhone5中还有另外两个设备,当设备是理想的时,应用程序在后台,因此导航符号消失并且我的位置数据不会在服务器上更新。

当电话是理想的并且当我启动我的应用程序时,它不在后台,我的应用程序从登录屏幕启动。

所以后台位置更新不适用于具有iOS5的iPhone5和iPhone4S7。

请为此提供解决方案。

如果我没有得到更新的位置,我的应用程序用于跟踪目的,所以它是无用的。

您可以在 AppDelegate.m 中添加此方法

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"ending background task");
        [[UIApplication sharedApplication] endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];
    timer = [NSTimer scheduledTimerWithTimeInterval:5
      target:locationManager
      selector:@selector(startUpdatingLocation)
      userInfo:nil
      repeats:YES
    ];
}

您可以通过以下链接获得帮助:从后台任务在iOS 7中启动位置管理器

以每隔 5 分钟更新一次您的位置信息。

相关内容

最新更新