怎样判断微信是否进入 Doze 模式?

2018-02-25 11:48:25 +08:00
 JohnChu
把微信移出了电池白名单,想用 gcm 接收通知。现在都能够收到通知但是我有点怀疑微信有没有进入 Doze,怕它是用后台进程接收的。
装了 wakeuplock detector,但是无法正常运作,所以看不到微信的唤醒锁情况。
之前用绿色守护休眠微信,每次重新打开都会显示地球画面,应该会干掉进程,Doze 模式是不是不会?
有没有办法检验微信进没进 Doze ?
谢谢
3707 次点击
所在节点    问与答
9 条回复
janus77
2018-02-25 12:02:04 +08:00
这么强迫症的吗
winterbells
2018-02-25 13:13:44 +08:00
adb shell sysdump deviceidle whitelist
honeycomb
2018-02-25 13:19:09 +08:00
@janus77 这可不是强迫症,wechat 理应按照系统设计实现它的后台设计。
iAndychan
2018-02-25 13:20:11 +08:00
微信估计是 Android 对于大多数人来说唯一不用 doze 的 app
等进入了以后你又会开始担心有没有错过消息,然后一遍遍打开微信
azhi
2018-02-25 13:29:23 +08:00
不用移出电池白名单,打开限制后台即可,一分钟微信自动进入后台缓存,消息推送会晚 5 秒左右
JohnChu
2018-02-25 14:00:00 +08:00
@azhi 打开限制后台是哪里的操作?我是三星 TouchWiz 7.0 的系统,你说的这个是所有 android 都有的吗?
进缓存是不是意味着打开时候还是秒开?
honeycomb
2018-02-25 15:39:48 +08:00
@JohnChu 这个限制指的是把一个叫做 run_in_background 的 appops op 设置为 ignore (或 target O 或更高的应用在 O 或更高的系统版本中不可取消地强制实行)

在 Android O 以前只能通过 appops 的接口( shell 命令 appops,或系统的内部 API )操作,有现成的 appopsx 等需要 root/adb 模式的软件做好了包装。

AndroidO 开始则可以在电池选项里找到它(前提是这个应用确实以后台的形式消耗过一定电量),还有一个地方是 8.1 及以后的系统中,可以在开发者选项里直接找到 background check

总之一共有这样四种办法。
honeycomb
2018-02-25 15:40:49 +08:00
@iAndychan gcm 拉起微信还是没有问题的。
azhi
2018-02-25 19:07:03 +08:00
@JohnChu 需要 8.0 系统,进缓存是秒开的体验爽歪歪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX