重要更改位置服务可以将我的应用程序保留在后台多长时间?

时间:2018-11-05 19:08:57

标签: ios cllocationmanager

我正在创建一个导航应用, 我同时使用Standard location serviceSignificant-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米(或更长时间)后唤醒我的应用。 因此,该应用进入了后台模式,并且在到达位置的情况下,我正在执行上面写的相同操作。

我的问题是:

  1. 当应用从暂停状态唤醒到后台时,我可以运行多长时间?

  2. 进入后台模式时,我试图获取UIApplication backgroundTimeRemaining,但是我总是会得到两倍的最大值(即使我正在使用后台任务),我该如何解决?

  3. 从暂停状态转到背景状态后,是否可以获得更多的位置?

0 个答案:

没有答案