应用程序在后台时没有 GPS onLocationChanged 回调?

No GPS onLocationChanged callbacks while app in background?

我有一个可用的应用程序,它使用 LocationManager 的 onLocationChanged() 回调处理和记录 GPS 位置。它工作正常直到我将应用程序置于后台,例如使用 "Recent Tasks" 按钮或主页按钮转到另一个应用程序。当我再次将它带到前面时,更新恢复。有趣的是,我确实看到状态从 GPS "Temporarily Unavailable" 变为 "GPS Available" 时放在前面。我确实在后台检查 "isProviderEnabled()",但它总是 returns true

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

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

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