iOS长时间运行的后台计时器,带有"位置"后台模式

Jae*_*Han 2 background ios

我想实现长时间运行的后台计时器,它定期向服务器发送用户的位置.

为此,我设置了location模式UIBackgroundModes,并beginBackgroundTaskWithExpirationHandler在应用程序转到后台时调用.因为CLLocationManager,我使用startUpdatingLocation方法(不想使用重大改变,因为我需要高精度位置).

但是在应用程序进入后台后大约26分钟,它会停止向服务器发送位置.但该应用程序没有崩溃,所以在我将应用程序带到前台后,它可以恢复其计时器.

26分钟来自实验,iOS 6.1,iPhone 5.

这是一些问题,

  1. 我无法理解为什么它在26分钟而不是10分钟后暂停,这被称为后台任务的时间限制.

  2. 在16分钟之前,backgroundTimeRemaining方法返回double max value.但是在16 600分钟后,它会减少,所以它会在10分钟后暂停后台任务.

我已经尝试beginBackgroundTaskWithExpirationHandler在expiration处理程序内调用,但没有用.

如果有人对此问题有所了解,将不胜感激.

Nik*_*wal 6

https://github.com/voyage11/Location

使用此代码.您可以设置要调用它的时间间隔.我已经尝试了很多代码,但我发现这是最准确和最少的电池问题.这对于后台定位服务也很棒.:)