0

我需要收集 GPS 数据,将其保存到数据库,然后每分钟将其发送到后端。我只是想确保打盹模式不会搞砸。

  1. 假设我启动了前台服务并onLocationChanged在那里实现了回调。

    我是否必须在前台服务中执行所有这些操作(收集/存储/发送)才能确保 Doze 允许使用 GPS / 互联网?

  2. 如果我想在其他地方存储/发送数据,例如在 aBroadcastReceiver中,我如何确定我BroadcastReceiver的已准备好处理数据并且没有睡着?

  3. Android M 中有一个 bug,导致前台服务受 Doze 模式影响: https ://stackoverflow.com/a/37869501/3210556

    一种可能的解决方法是在单独的进程中启动前台服务。

    假设应用程序中有前台服务,究竟什么不受打瞌睡的影响?

    • 前台服务本身?
    • 与前台服务相关的进程?
    • 整个应用程序?

谢谢你。

4

1 回答 1

0

如果您的手机进入Doze睡眠状态(GPS、警报、互联网等)并在某个时候推迟到维护窗口(取决于用户拥有的 android 版本)。

如果您的应用需要在特定时间执行某些操作,您可以请求将您的应用列入白名单。您可以在此处查看白名单的有效用例,听起来您的案例可能是有效的

于 2017-10-11T18:25:21.717 回答