【问题标题】:Detecting if user has enabled/disabled location services in background in iOS检测用户是否在 iOS 后台启用/禁用定位服务
【发布时间】:2014-08-24 18:44:33
【问题描述】:
我的应用在后台启用了定位服务,但这是我向用户提供的一个选项:我的意思是,我的应用中有一个设置选项,允许用户继续在后台跟踪位置或不跟踪位置。如果用户在我的应用程序中启用此选项并进入后台,一旦进入后台,她会在设备的“设置”应用程序中禁用定位服务,然后再次启用它们,我看到她需要再次激活该应用程序才能重新启动在我的应用中监听的位置。
有没有办法在后台重新启动它?我需要这个才能在 iOS 6.0+ 中工作
提前致谢
【问题讨论】:
标签:
ios
objective-c
cllocationmanager
location-services
【解决方案1】:
试试
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