gpt4 book ai didi

Jelly Bean 中的 Android Activity 生命周期

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:13 24 4
gpt4 key购买 nike

我已经开发了几个月的应用程序并准备发布。我一直在使用搭载 Android 4.0.4 的摩托罗拉 Xoom 在整个过程中进行测试,一切正常。我从 Google 购买了一台 Nexus 7(运行 Jelly Bean 4.1),现在当设备休眠或关闭时,我遇到了各种关于 Activity 生命周期的问题。

我创建了一个新项目,其唯一目的是检查生命周期,这就是我得出的结果。以下代码是我在每个生命周期方法中所做的示例。

@Override
protected void onPause() {
Log.i("TEST", "onPause()");
super.onPause();
}

Xoom 的结果(预期结果)

---------- Program Launch -------------
onCreate(null)
onStart()
onResume()
---------- Turn Off Screen ------------
onPause()
onSaveInstanceState(not null)
onStop()
---------- Turn Screen On -------------
onReStart()
onRestoreInstanceState(not null)
onResume()

Nexus 7 的结果(意外结果)

---------- Program Launch -------------
onCreate(null)
onStart()
onResume()
---------- Turn Off Screen ------------
onPause()
onSaveInstanceState(not null)
onStop()
onDestroy()
onCreate(not null)
onStart()
onRestoreInstanceState(not null)
onResume()
onPause()
---------- Turn Screen On -------------
OnResume()
onPause()
onSaveInstanceState(not null)
onStop()
onDestroy()
onCreate(not null)
onStart()
onRestoreInstanceState(not null)
onResume()

同样,这些结果来自一个全新的项目,除了每个方法中的 Log 语句外,没有任何代码更改。当 Nexus 7 关闭并重新打开时,为什么会有这么多额外的、不必要的方法调用?它似乎是完全破坏应用程序然后重新创建。

为了完整起见,当使用主页按钮然后重新启动应用程序时,设备之间的生命周期似乎是一致的。

在此先感谢您的帮助。韦恩

最佳答案

Jelly Bean 4.1 - Nexus 7 在此路径上有一个选项:

Settings -> Developer Options -> Don't keep activities...

该选项将终止所有进入后台的 Activity 。因此,当 Android 将状态更改为“正在 sleep ”和“正在醒来”时,您的 Activity 将被销毁并重新创建。

关于Jelly Bean 中的 Android Activity 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com