检测用户是否在iOS中启用/禁用后台位置服务

时间:2014-07-03 14:59:49

标签: ios objective-c cllocationmanager location-services

我在后台启用了我的应用程序位置服务,但这是我向用户提供的一个选项:我的意思是,我的应用程序中有一个设置选项,允许用户继续跟踪后台位置。如果用户在我的应用程序中启用此选项并转到后台,并且在后台运行一次,则会在设备的“设置”应用中禁用位置服务,然后再次启用它们,我看到她需要再次启动应用才能重新启动在我的应用程序中收听的位置。

有没有办法在后台重启它?我需要这个在iOS 6.0 +

中工作

提前致谢

1 个答案:

答案 0 :(得分:0)

尝试

public override void DidEnterBackground (UIApplication application) {
  int taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
  new Task ( () => {
    DoWork();
    //UIApplication.SharedApplication.EndBackgroundTask(taskID);
  }).Start();
}

检查多任务支持,以便可以修改应用程序行为以补偿缺少的功能:

- (BOOL)multitaskingAvailable
{
  UIDevice *device = [UIDevice currentDevice];
  BOOL areBackgroundTasksSupported = NO;
  if ([device respondsToSelector:
      @selector(isMultitaskingSupported)])
       areBackgroundTasksSupported = device.multitaskingSupported;
  return areBackgroundTasksSupported;
}

Source