活动生命周期?

Gio*_*nJh 6 lifecycle android bundle android-activity

我认为我对活动生命周期和捆绑包的想法
有点困惑,你能帮帮我吗?

假设用户从主屏幕打开活动A,
活动A "调用" 填充屏幕的活动B.
在此事件onSaveInstanceState()上调用活动A然后onPause()onStop().
由于目前有在系统上运行了太多的应用程序,
Andorid的决定杀掉进程托管活性的.

当用户导航回活动A时,调用onCreate(),我们可以
使用该bundle(在onSaveInstaceStae()的最后一次调用期间设置)来恢复状态.然后onStart(),onRestoreInsanceState()
onResume()被称为,
是吗?

然后假设用户按下后退键以退出活动A
onPause(),onStop()并且在此方案中不应调用活动AonDestory()上的顺序调用(可以推迟调用) .onDestroy()onSaveInsanceState()

当用户稍后再次打开活动A时,
传递给onCreate()的包为空,对吧?

现在,假设用户旋转屏幕 onSaveInsanceState(),OnPause(),OnStop(),OnDestroy()被称为
然后onCreate()用包被的最后一次调用设置好的onSaveInsanceState(),
然后在onStart()和OnRestore中().我对吗?

我的猜测是:

当用户创建一个活动时,传递给的bundle onCreate()总是为null并且onRestoreState()永远不会被调用,但是当系统创建它时,例如当它由于内存不足或者因为旋转事件而杀死活动时,传递的bundle是一个由onSaveInstanceState()的最后一次调用设置.

我猜对了吗?

谢谢,抱歉我的英语不好.

PS:我认为onRestoreInstanceState()传递相同的bundle被传递onCreate()但通常使用恢复状态onCreate().

Phi*_*ndt 0

有趣的问题——从来没有想过。

查看文档,onCreate()并且onSaveInstanceState().

这至少回答了您的问题 Bundle 将提供给onCreate()

不幸的是,没有确切的定义调用哪些事件onSaveInstanceState(),但我想在所有相关情况下都会默认调用它(无论它们是什么......),但您可以通过输入来找出某些情况(例如旋转屏幕) Log.i() 到 LogCat。