【问题标题】:No GPS onLocationChanged callbacks while app in background?应用程序在后台时没有 GPS onLocationChanged 回调?
【发布时间】:2020-05-24 11:53:16
【问题描述】:

我有一个工作应用程序,它使用 LocationManager 的 onLocationChanged() 回调处理和记录 GPS 位置。它工作正常直到我将应用程序放在后台,例如通过使用“最近的任务”按钮或主页按钮转到另一个应用程序。当我再次把它带到前面时,更新会继续。有趣的是,我确实看到 GPS 的状态从“暂时不可用”变为“GPS 可用”。我确实在后台检查了“isProviderEnabled()”,但它总是返回 true

我在 LocationManager 文档中没有看到这个工件:也许这是一个未记录但预期的行为 (???)

  • 我尝试将 GPS 侦听器作为服务实现。没有喜悦。
  • 然后我尝试在服务内部生成一个 ASyncTask(包括服务启动时的 GPS 侦听器)。仍然没有喜悦。

在任何一种情况下,行为相同:当启动服务的应用程序进入后台时,不会调用 onLocationChanged。
有人有建议吗?

【问题讨论】:

    标签: cllocationmanager android-gps


    【解决方案1】:

    我找到了解决方案:我需要使用 Foreground 服务。 这在https://androidwave.com/foreground-service-android.example 中有描述 通过此更改,即使在主要活动停止(完成)后,也会收到 GPS 定位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      相关资源
      最近更新 更多