Doze模式和Idle模式是相同的吗?

3

我正在使用Android Studio并尝试在Doze模式下测试我的应用程序。我已经阅读了一些链接(包括关于Doze模式的Android文档)。然而,我感到困惑。 "IDLE"和"Doze模式"之间有什么区别吗?每当我阅读它们时,它们似乎被视为相同的东西。

此外,我期望从Doze模式唤醒后,活动中的onCreateView()方法将再次被调用。这是正确的吗? 我已尝试使用ADB强制进入Doze模式,然后再次唤醒,启动应用程序,转到要测试的活动,然后使用以下命令:

adb shell dumpsys battery unplug

adb shell dumpsys deviceidle force-idle

adb shell input keyevent KEYCODE_WAKEUP

然而,只调用了onResume()方法。如果我的预期是错误的,那么无论是Doze模式还是Idle,都应该在唤醒后调用onResume()吗? 我有点困惑这两个概念。 请有人帮帮我吗?


1
Doze模式意味着您不使用手机并拔掉它,而空闲模式意味着您不使用应用程序。 - mrcrambo
好的,这很有道理。但是,每当我使用我的问题中的前两个命令时,我是在强制进入空闲模式还是待机模式?文档展示了在待机模式下测试应用程序的步骤,但我觉得这些步骤展示了如何强制进入空闲模式。 - Yaksa
1个回答

1

在Doze模式结束后,OnCreateView将不会再次被调用。仅当您的应用程序在Doze模式期间被杀死时,才会调用OnCreate。因为您返回到之前不在前台的活动或片段,所以会调用OnResume。我建议您阅读有关Android生命周期的更多信息,以及Oncreate与OnResume之间成员变量方面的差异onCreate vs. onResume/onRestart bevhaviour regarding member variables


那么,在测试目的下,当通过打开屏幕来完成空闲模式或待机模式时,onResume会被调用吗?当这两种模式完成时,它们的工作方式有什么区别吗? - Yaksa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接