在后台运行的应用程序中自动开启/关闭GPS跟踪

时间:2015-07-07 04:39:13

标签: ios iphone gps core-location cllocationmanager

当应用程序在后台运行时,如何停止并启动GPS跟踪。我能够在应用程序中停止跟踪,但没有任何方法来启动应用程序。我在寻找以下的答案。

1.我是否可以静默使用推送通知来启动GPS跟踪。 我尝试了本地通知,但需要用户互动才能启动该过程。有没有最好的方法来做到这一点。

我的问题:最初,我可以开始跟踪用户位置,并可以在后台播放一段时间后停止播放。我想第二天开始跟踪。我正在寻找一种在后台开始跟踪的方法。

实际上我的应用程序基本上是位置跟踪应用程序。如果启动应用程序,应用程序将开始跟踪,直到下午8:00(自动停止)。再次开始跟踪第二天上午8:00。

2 个答案:

答案 0 :(得分:1)

如果您的应用在后台运行时启动了位置更新,则这些更新的持续时间不会超过iOS为后台任务授予的时间(目前为180秒)。

应用程序处于活动状态时必须启动位置更新,这样做可确保即使应用程序转到后台后更新仍会继续,假设您已正确配置应用程序后台模式 - 请参阅功能/背景模式/位置 Xcode中的更新。

即使你的应用程序被终止,新位置事件的传递也会完全停止。

如果您想暂时禁止标准位置更新,请使用

allowDeferredLocationUpdatesUntilTraveled:timeout:

当延迟更新时,GPS接收器仍然通电,但没有CPU活动发生,因为接收器不会触发事件。我自己没有在这种模式下测试功耗,但人们每小时提到约2%的电池消耗。

答案 1 :(得分:0)

你试过这个吗?

x.swap(y);

将intervalBackground更新设置为1天