ios - iPhone 4s 和 iPhone 5 中的位置更新无法在后台模式 iOS 7.0 中运行,而手机处于理想状态

标签 ios objective-c ios7 xcode5 iphone-5

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

设置desiredAccuracy = kCLLocationAccuracyNearestTenMeters

距离过滤器 = 60.0。

我想提供后台支持。为此我

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

应用程序从网络下载内容

在我的 info.plist 中。我把

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

此代码位于 didFinishLaunchingWithOptions 方法中。

我也使用此方法来调用 startUpdatingLocation 位置管理器方法

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

这一切都可以在 iOS 7 和 iPhone4 上运行

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

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

因此后台位置更新不适用于装有 iOS7 的 iPhone5 和 iPhone4S。

请为我提供解决方案。

我的应用程序用于跟踪目的,如果我没有获得更新的位置,那么它就没用了。

最佳答案

你可以在你的 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 - iPhone 4s 和 iPhone 5 中的位置更新无法在后台模式 iOS 7.0 中运行,而手机处于理想状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245807/

相关文章:

ios - 将手势 UITapGestureRecognizer 添加到 UILabel 后应用程序崩溃

ios - 标题部分 View UITableView 中的标签和按钮

android - React-Native 弹性盒重叠所需的最小高度?

ios - RestKit 映射非托管对象

iphone - 具有自定义 View 的 UIBarButtonItem 在第一次查看后不显示

ios - 正确使用 CoreData 和 MagicalRecord

ios7 每隔一小时从我的服务器以后台模式获取数据

ios - 警报 View 位置不在中心

ios - 关闭模态视图 Controller 中显示的键盘(表单)

uiviewcontroller - 水平分隔符 NavBar IOS 7