Android LocationListener停止接收位置更新

时间:2012-07-21 23:47:24

标签: android android-location

我已注册location listener,它将使用NETWORK_PROVIDER接收位置更新。如果activity在前台,则侦听器接收位置更新。如果我离开应用程序,一段时间后它会停止接收位置更新。这有点奇怪......即使堆栈中没有任何活动,它是否应该接收位置更新?如果我回到我的应用程序,监听器将再次开始接收位置更新。

或者我做错了什么?建议使用哪种编程模型来接收位置更新,即使我的活动都没有激活(前台也不在堆栈上)?

还有一些其他方式可以接收位置更新(使用待定意图),但如果我不打开GPS则不会触发。

1 个答案:

答案 0 :(得分:2)

后台活动最终将被销毁,您无法保证一旦停止,它将继续接收位置更新。 Android中的活动不应该像这样使用。

您可以按照建议使用带唤醒锁定的服务,但保持设备唤醒会很快耗尽电池电量。

我建议您使用Reto Meier(IO 2011)this talk,在那里他谈到了拥有新位置的不同策略。这是the code