我想实现长时间运行的后台计时器,它定期向服务器发送用户的位置.
为此,我设置了location模式UIBackgroundModes,并beginBackgroundTaskWithExpirationHandler在应用程序转到后台时调用.因为CLLocationManager,我使用startUpdatingLocation方法(不想使用重大改变,因为我需要高精度位置).
但是在应用程序进入后台后大约26分钟,它会停止向服务器发送位置.但该应用程序没有崩溃,所以在我将应用程序带到前台后,它可以恢复其计时器.
26分钟来自实验,iOS 6.1,iPhone 5.
这是一些问题,
我无法理解为什么它在26分钟而不是10分钟后暂停,这被称为后台任务的时间限制.
在16分钟之前,backgroundTimeRemaining方法返回double max value.但是在16 600分钟后,它会减少,所以它会在10分钟后暂停后台任务.
我已经尝试beginBackgroundTaskWithExpirationHandler在expiration处理程序内调用,但没有用.
如果有人对此问题有所了解,将不胜感激.
https://github.com/voyage11/Location
使用此代码.您可以设置要调用它的时间间隔.我已经尝试了很多代码,但我发现这是最准确和最少的电池问题.这对于后台定位服务也很棒.:)
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |