【问题标题】:Android N Doze mode - how to keep background download and processing?Android N Doze 模式 - 如何保持后台下载和处理?
【发布时间】:2016-06-09 11:46:38
【问题描述】:
  1. 打盹模式是否有回调(在打盹第一/第二级,在维护窗口的开始/结束时)?
  2. 有没有办法解决不依赖于用户批准的打盹模式?
  3. 在以前的版本(Android M 和更小)中,我使用 Android 服务和部分唤醒锁在应用程序处于后台时下载和处理数据。当 Android N 进入打盹模式时,有没有办法在后台下载和处理数据?

【问题讨论】:

    标签: android android-doze


    【解决方案1】:

    打盹模式是否有回调(在打盹第一/第二级,在维护窗口的开始/结束时)?

    如果你有一个正在运行的进程,你可以为the ACTION_DEVICE_IDLE_MODE_CHANGEDACTION_POWER_SAVE_MODE_CHANGED broadcasts注册一个receiver。前者应该对应Doze模式。

    有没有办法解决不依赖于用户批准的打盹模式?

    我不知道“解决方法打盹模式”是什么意思。您可以在AlarmManager 上使用...AndAllowWhileIdle() 方法,尽管我的结果好坏参半。您可以使用 GCM(或现在的 FCM)。见the documentation

    在以前的版本(Android M 和更小版本)中,我使用 Android 服务和部分唤醒锁在应用程序处于后台时下载和处理数据。

    您的部分唤醒锁定应在 Android 6.0(又名 M)的打盹模式下撤销。同样,在 Android 6.0 上,您不应在打盹模式下访问 Internet。

    当 Android N 进入打盹模式时,有没有办法在后台下载和处理数据?

    对于完全打盹模式,Android N 似乎没有改变。对于 Android N 引入的部分打盹模式,您的部分唤醒锁定应该可以工作,尽管我不确定网络访问。

    【讨论】:

      【解决方案2】:
      1. 在以前的版本(Android M 和更小)中,我使用 Android 服务和部分唤醒锁来下载和处理数据,而 应用程序在后台。有没有办法下载和处理 Android N 进入打盹模式时后台的数据?

      当设备进入打盹模式时,大多数功能停止实际上是因为CPU停止了,那么方法应该是避免进入打盹模式:

      对我有用的是使用前台服务,即调用 startForeground() (1) 并显示不可关闭通知的服务,然后尊重部分唤醒锁定并且设备不会进入打盹模式.

      (1) 从 Android 8 开始,启动前台服务的方法发生了变化Android O - Old start foreground service still working?

      【讨论】:

        猜你喜欢
        • 2019-11-10
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 2016-08-22
        • 2019-12-03
        相关资源
        最近更新 更多