(savedInstanceState)是什么意思?

3
在我的主活动中有一些代码,其中包含以下内容:
if (savedInstanceState != null) {
            mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
            mFromSavedInstanceState = true;

我不太理解这段代码中的 (savedInstanceState) 是什么意思。有人能告诉我在这个上下文中它是什么意思吗?因为我是一个新手,我想要理解代码,以便我学习、理解并在需要时复制它。

2个回答

5
引用自(http://developer.android.com/training/basics/activity-lifecycle/recreating.html):
在一些正常的应用程序行为中,您的活动可能会被销毁,例如当用户按下返回按钮或通过调用finish()方法来信号其自身的销毁。如果当前已停止使用并且长时间未使用,或前台活动需要更多资源以便系统关闭后台进程以恢复内存,则系统也可能销毁您的活动。
此外,如果您在bundle中保存了应用程序的状态(通常是非持久性的动态数据),则可以在需要重新创建活动时将其传递回onCreate(例如,方向更改),以便不会丢失先前的信息。如果没有提供数据,则savedInstanceState为null。

2

如果您的Activity在后台运行,当内存不足时,Android操作系统可能会决定终止包含该Activity的进程。为了处理这种情况,您可以将Activity的状态持久化到Bundle中。

如果您返回已被终止的Activity,则持久化的状态将通过savedInstanceState参数传递给Activity的onCreate方法。这将使您能够将Activity恢复到其上次状态。


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