gpt4 book ai didi

java - 未调用 Onsavedinstancestate 时写入 outState

转载 作者:行者123 更新时间:2023-11-29 23:28:48 25 4
gpt4 key购买 nike

我有一个 Activity(0) 从它托管的 fragment 启动另一个 Activity(1)。我在工具栏中设置了向上按钮以从 Activity(1) 返回到 Activity(0) 和其他一些 Activity (2,3,4) 可能由 Activity(1) 初始化。

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

我知道可以使用 Intents 执行此操作,但我不希望我以后的所有 Activity 都必须了解 Activty(0) 的工作原理。

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

最佳答案

在 Activity(0) 中,跟踪一个包含您要保留的信息的私有(private)字段,然后在 Activity 被销毁时使用 onSaveInstanceState() 保存此字段:

private String myInfo;

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("KEY_MY_INFO", myInfo);
}

您没有说明要保存哪种信息或要从何处保存信息,但这个通用模板应该可以使用。您可能需要公开一个 setter 方法:

public void setMyInfo(String myInfo) {
this.myInfo = myInfo;
}

如果您尝试从一个 fragment 开始工作,您可能需要转换您的 Activity :

MyActivity activity = (MyActivity) getActivity();
activity.setMyInfo("hello world");

关于java - 未调用 Onsavedinstancestate 时写入 outState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com