发布于 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模式,您的部分唤醒锁应该可以工作,尽管我对网络访问不确定。
发布于 2018-01-18 12:08:45
当设备进入Doze模式时,大多数功能会因为CPU停止而停止,那么方法应该是避免进入Doze模式:
对我有用的是使用前台服务,即调用startForeground() (1)并显示不可解除通知的服务,然后部分唤醒锁被尊重,设备不会进入Doze模式。
(1)从Android 8开始,启动前台服务的方法更改了https://stackoverflow.com/questions/43251528/android-o-old-start-foreground-service-still-working。
https://stackoverflow.com/questions/37725096
复制相似问题