我已经开发了几个月的应用程序并准备发布。我一直在使用带有 Android 4.0.4 的摩托罗拉 Xoom 进行整个过程的测试,并且一切正常。我从 Google 购买了 Nexus 7(运行 Jelly Bean 4.1),当设备休眠或关闭时,我现在遇到各种活动生命周期问题。
我创建了一个新项目,其唯一目的是检查生命周期,这就是我想出的结果。以下代码是我在每个生命周期方法中所做的示例。
@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 关闭并重新打开时会有这么多额外的、不必要的方法调用?它似乎完全破坏了应用程序,然后重新创建。
为了完整起见,当使用主页按钮然后重新启动应用程序时,设备之间的生命周期似乎是一致的。
提前感谢您的帮助。韦恩