首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android N Doze模式-如何保持后台下载和处理?

Android N Doze模式-如何保持后台下载和处理?
EN

Stack Overflow用户
提问于 2016-06-09 11:46:38
回答 2查看 1.2K关注 0票数 0
  1. 在打瞌睡模式(在doze一级/二级,在维护开始/结束窗口)上有回调吗?
  2. 有没有一种不依赖于用户批准的解决Doze模式的方法?
  3. 在以前的版本(Android和更小版本)中,我使用Android和部分唤醒锁来下载和处理数据,而应用程序处于后台。当Android进入Doze模式时,有没有一种下载和处理后台数据的方法?
EN

回答 2

Stack Overflow用户

发布于 2016-06-09 12:00:32

在打瞌睡模式(在doze一级/二级,在维护开始/结束窗口)上有回调吗?

如果您有一个正在运行的进程,您可以为ACTION_DEVICE_IDLE_MODE_CHANGED广播注册一个接收器。前者应与Doze模式相对应。

有没有一种不依赖于用户批准的解决Doze模式的方法?

我不知道“解决Doze模式”是什么意思。您可以在...AndAllowWhileIdle()上使用AlarmManager方法,尽管我的结果参差不齐。你可以使用GCM (或者现在的FCM )。见文献资料

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

在Android6.0 (a.k.a.,M)上,您的部分唤醒锁应该在Doze模式下被撤销。同样,在Android6.0上,您不应该以Doze模式访问Internet。

当Android进入Doze模式时,有没有一种下载和处理后台数据的方法?

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

票数 2
EN

Stack Overflow用户

发布于 2018-01-18 12:08:45

  1. 在以前的版本(Android和更小版本)中,我使用Android和部分唤醒锁来下载和处理数据,而应用程序处于后台。当Android进入Doze模式时,有没有一种下载和处理后台数据的方法?

当设备进入Doze模式时,大多数功能会因为CPU停止而停止,那么方法应该是避免进入Doze模式:

对我有用的是使用前台服务,即调用startForeground() (1)并显示不可解除通知的服务,然后部分唤醒锁被尊重,设备不会进入Doze模式。

(1)从Android 8开始,启动前台服务的方法更改了https://stackoverflow.com/questions/43251528/android-o-old-start-foreground-service-still-working

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37725096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档