在我的主要活动中,有一些代码表示
if (savedInstanceState != null) {
mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
mFromSavedInstanceState = true;
我并不完全理解(savedInstanceState)
在此代码中的含义。有人可以告诉我在这种情况下它意味着什么,因为我是一个菜鸟,我想了解代码,以便我可以学习它,理解它,甚至在需要时复制它。
答案 0 :(得分:5)
引自(http://developer.android.com/training/basics/activity-lifecycle/recreating.html):
在某些情况下,您的活动会因此被销毁 正常的应用程序行为,例如当用户按下后退按钮或时 你的活动通过调用finish()表示自己的破坏。该 如果系统当前已停止,系统也可能会破坏您的活动 没有在很长一段时间内使用或前台活动需要 更多资源,因此系统必须关闭后台进程 恢复记忆。
此外,如果您将应用程序的状态保存在一个包中(通常是onSaveInstanceState中的非持久性动态数据),如果需要重新创建活动(例如,方向更改),则可以将其传递回onCreate,以便你不会失去这些先前的信息。如果没有提供数据,savedInstanceState为空。
答案 1 :(得分:2)
如果您的活动在后台,如果内存不足,Android操作系统可能决定终止包含此活动的进程。要处理这种可能性,您可以在Bundle中保持Activity的状态。
如果您返回已被杀死的Activity,则持久状态将传递到onCreate
参数中Activity的savedInstanceState
。这将允许您将活动恢复到其上一个状态。