猿问

未调用 Onsavedinstancestate 时写入 outState

我有一个 Activity(0),它从它托管的片段启动另一个 Activity(1)。我在工具栏中设置了向上按钮,从 Activity(1) 和更多的活动返回到 Activity(0), 3,4) 可能由 Activity(1) 初始化。

我想为 Activity(0) 保存一个变量,以便在用户从 Activities(1,2,3,4...) 按下向上按钮后重新创建它时,它将返回到它的先前状态。

我知道使用 Intent 可以做到这一点,但我不希望我未来的所有活动都必须了解 Activty(0) 的工作原理。

是否可以写入 outState 以便通过调用 Onsavedinstancestate 来执行此操作?还是有我不知道的更好的解决方案?


郎朗坤
浏览 182回答 2
2回答

慕容3067478

在 Activity(0) 中,跟踪一个包含您要保留的信息的私有字段,然后onSaveInstanceState()在 Activity 被销毁时用于保存该字段:private String myInfo;@Overridepublic void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    outState.putString("KEY_MY_INFO", myInfo);}你没有说明你想保存什么样的信息或者你想从哪里保存它,但是这个通用模板应该可以工作。您可能需要公开一个 setter 方法:public void setMyInfo(String myInfo) {    this.myInfo = myInfo;}如果您尝试从片段工作,则可能需要投射您的活动:MyActivity activity = (MyActivity) getActivity();activity.setMyInfo("hello world");

慕尼黑5688855

如果你没有finishActivity 0 。您可以将变量定义为全局变量。例如 :Class A extends AppCompatActivity{ public String myvariable; ...}
随时随地看视频慕课网APP

相关分类

Java
我要回答