我有一个需要获取单个位置更新的前台服务。
它由一个特定的广播启动,启动后它只是在我们的后端发出一个请求。当它接收到另一个广播时,它会请求位置更新(一次),执行另一个后端请求,然后自行停止。
编辑:澄清一下,服务本身会执行位置更新和后端请求。在这方面它独立于主应用程序。
这在 Lollipop 和 Marshmallow 上运行良好,无论是在手机处于唤醒状态还是处于打盹模式时。但出于某种原因,在 Android O 上,该服务在打盹模式下永远不会获取位置更新。网络工作正常,因为它的第一个请求在这两种情况下都通过。此外,如果我在位置请求运行时唤醒手机,它将获得更新。如果我把它放在维护窗口中也是一样的。
Android O 确实对后台位置引入了一些限制,但正如页面所述,前台应用程序行为(应用程序可见或前台服务正在运行)应保留并与以前的 Android 版本类似。
这是开发者预览中的问题还是我错过的限制?