我在早上8点发送推送通知,以便在后台运行的应用程序中启动GPS。推送通知接收,但GPS未开始跟踪。我怎样才能实现这一目标?我正在使用以下代码。
func application(application: UIApplication,
didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
NSLog("userInfoComp %@",userInfo);
var app = UIApplication.sharedApplication()
var bgTask2 : UIBackgroundTaskIdentifier?
bgTask2 = app.beginBackgroundTaskWithExpirationHandler { () -> Void in
app.endBackgroundTask(bgTask2!)
bgTask2 = UIBackgroundTaskInvalid
}
if bgTask2 == UIBackgroundTaskInvalid {
return
}
PSLocationManager.sharedLocationManager().prepLocationUpdates()
PSLocationManager.sharedLocationManager().startLocationUpdates()
}
答案 0 :(得分:0)
当您的应用处于后台模式时,您无法启动位置服务。当您的应用在用户允许的情况下处于活动状态时(即使用户未使用该应用程序来跟踪他),您需要使用startMonitoringSignificantLocationChanges来在后台模式下获取位置更新。
如果用户不静止,即使用户每隔5分钟终止应用,您也会获得位置更新。
如果您的应用程序在后台,您可以使用startLocationUpdates获取位置更新,但即使3-4个应用程序在后台操作系统可能会停止更新位置,它也不可靠。