如何在onResume()中检索onSaveInstanceState()包?

时间:2013-10-11 03:04:04

标签: android android-activity android-lifecycle

我遇到了与保存我的活动状态相关的问题。我在这里搜索并阅读了很多问题但是我无法得到我的问题的答案。

我有一个Activity A与2 FragmentsActivity A保存Fragments显示的数据。当我为我的设置Intent启动新的Activity时,Activity A暂停(未销毁),onPause()onSaveInstanceState()方法被调用,因此我保存我在onSaveInstaceState()中的所有数据。

当我使用后退按钮Activity从我的设置返回时,再次显示A,但未调用onCreate()方法,因为Activity未被销毁,而是onResume()方法被调用,但我在Activity A中丢失了我的变量状态,我无法访问Bundle中保存的onSaveInstanceState(),因为onCreate()未被调用。

所以onSaveInstanceState()仅在旋转屏幕时有用吗?如何访问我在onSaveInstanceState()中保存的所有数据?或者我应该将它们保存到文件或SharedPrefs以便稍后在onResume()中访问它们?

2 个答案:

答案 0 :(得分:26)

这有用吗?
1.使用getIntent().putExtras()中的onStop()将您的数据保存到活动包中 2.然后在getIntent().getExtras()onResume()检索它。

你应该在访问软件包之前进行空检查:)

答案 1 :(得分:-3)

您可以将捆绑或变量中的SavedInstance中的所有内容保存起来。

并在onActivityCreated方法上设置数据,如:

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

        // Do your stuff here

}