1

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

还是我做错了什么?即使我的所有活动都没有处于活动状态(既不在前台,也不在堆栈上),建议使用哪种编程模型来接收位置更新?

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

4

1 回答 1

2

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

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

我向您推荐Reto Meier(IO 2011)的演讲,他在其中谈到了拥有新位置的不同策略。这是代码

于 2012-07-22T16:25:19.377 回答