Android Doze:它会分别影响整个应用程序或其进程吗?

时间:2017-10-11 18:05:31

标签: android android-service android-6.0-marshmallow android-doze foreground-service

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

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

    为了确保Doze允许使​​用GPS /互联网,我是否必须在前台服务中完成所有这些(收集/存储/发送)?

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

  3. Android M中存在一个错误,它使前台服务受到打盹模式的影响: https://stackoverflow.com/a/37869501/3210556

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

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

    • 前台服务本身?
    • 与前台服务相关联的流程?
    • 整个应用程序?
  4. 谢谢。

1 个答案:

答案 0 :(得分:0)

如果您的手机进入Doze,所有内容都会进入睡眠状态(GPS,闹钟,互联网等)并在某些时候被推迟到维护窗口(取决于用户拥有的Android版本)。

如果您的应用需要在特定时间执行某些操作,您可以向white list申请。您可以查看白名单here的有效使用案例,听起来您的情况可能有效