我正在创建一个导航应用,
我同时使用Standard location service
和Significant-change location service
。
另外,我设置
significantChangesLocationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
significantChangesLocationManager.activityType = CLActivityTypeOtherNavigation;
significantChangesLocationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.activityType = CLActivityTypeOtherNavigation;
//Not allowing automatic pausing because of this: http://stackoverflow.com/questions/17484352/iphone-gps-in-background-never-resumes-after-pause. Testing confirms this behavior - app goes to sleep and never wakes up.
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
每次调用locationManager:didUpdateLocations:
时,我都会启动一个新的后台任务来保存位置,分析样本等。
应用被系统/用户杀死后,我遇到了一些问题 重要更改位置服务将在500米(或更长时间)后唤醒我的应用。 因此,该应用进入了后台模式,并且在到达位置的情况下,我正在执行上面写的相同操作。
我的问题是:
当应用从暂停状态唤醒到后台时,我可以运行多长时间?
进入后台模式时,我试图获取UIApplication backgroundTimeRemaining
,但是我总是会得到两倍的最大值(即使我正在使用后台任务),我该如何解决?
从暂停状态转到背景状态后,是否可以获得更多的位置?