0

我需要收集GPS数据,将其保存到数据库,然后每分钟发送到后端。 我只是想确保打盹模式不会把事情搞砸。Android Doze:它会分别影响整个应用程序还是其流程?

  1. 让我们假设我启动我的前台服务并在那里执行onLocationChanged回调。

    我是否必须在前台服务中完成所有这些工作(收集/存储/发送)才能确保打盹将允许使用GPS /互联网?

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

  3. 有一个在Android的男,这使得受打盹模式前台服务中的错误: https://stackoverflow.com/a/37869501/3210556

    一个可能woakaround是在一个单独的进程启动前台服务。

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

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

谢谢。

回答

1

如果你的手机进入Doze所有的东西都进入睡眠状态(GPS,警报,互联网等)并在某些时候被推迟到维护窗口(取决于用户的Android版本)。

如果您的应用程序需要在特定时间执行某些操作,那么您可以请求white list您的应用程序。您可以查看白名单here的有效用例,这听起来像您的案例可能是有效的

相关问题