我遇到了与保存我的活动状态相关的问题。我在这里搜索并阅读了很多问题但是我无法得到我的问题的答案。
我有一个Activity
A与2 Fragments
。 Activity
A保存Fragments
显示的数据。当我为我的设置Intent
启动新的Activity
时,Activity
A暂停(未销毁),onPause()
和onSaveInstanceState()
方法被调用,因此我保存我在onSaveInstaceState()
中的所有数据。
当我使用后退按钮Activity
从我的设置返回时,再次显示A,但未调用onCreate()
方法,因为Activity
未被销毁,而是onResume()
方法被调用,但我在Activity
A中丢失了我的变量状态,我无法访问Bundle
中保存的onSaveInstanceState()
,因为onCreate()
未被调用。
所以onSaveInstanceState()
仅在旋转屏幕时有用吗?如何访问我在onSaveInstanceState()
中保存的所有数据?或者我应该将它们保存到文件或SharedPrefs
以便稍后在onResume()
中访问它们?
答案 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
}