【问题标题】:Android LocationListener stop receiving location updatesAndroid LocationListener 停止接收位置更新
【发布时间】:2012-07-21 23:47:24
【问题描述】:

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

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

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

【问题讨论】:

  • 如果你想在活动睡眠时接收位置,你需要一个唤醒锁和一个服务。
  • 你的意思是我应该写一个服务?并且该服务应该实现LocationListener?你说的唤醒锁是什么意思?您提到的任何链接或示例?
  • 我读到了唤醒锁。我不想要唤醒锁。因为我不希望设备被唤醒。设备运行正常。如果他愿意,用户应该能够锁定屏幕。让听众成为服务会更有意义。但我不确定这是否是正确的方法。
  • @JahidShohel 你解决了这个问题吗?如果是的话,你能把代码分享给我吗?

标签: android android-location


【解决方案1】:

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

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

我向您推荐 Reto Meier(IO 2011)的this talk,他在其中谈到了拥有新位置的不同策略。这里是the code

【讨论】:

  • 感谢视频的良好链接。演讲中涉及了很多重要的话题。关于接收位置更新的部分是从大约 20 分 50 秒到 26 分 00 秒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 2023-03-10
  • 2012-04-01
  • 2017-05-30
  • 2020-01-28
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多