首页 > 解决方案 > 应用程序在后台时没有 GPS onLocationChanged 回调?

问题描述

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

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

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

标签: cllocationmanagerandroid-gps

解决方案


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


推荐阅读