gpt4 book ai didi

android - onActivityCreated() 中的 Bundle 返回 null,即使在 onSaveInstanceState() 中设置值之后

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:19 26 4
gpt4 key购买 nike

在应用程序中,每当 fragment 失去焦点(即另一个 Activity/fragment 在其上打开)时,就会调用 onSaveInstanceState()

developers guide 中也提到了同样的内容.

我正在尝试使用此方法来维护我的 fragment 在恢复时的状态。我的 Intent 是在恢复 fragment 时在 onActivityCreated() 中调用此 bundle

尽管 onSaveInstanceState 在 fragment 失去焦点之前被调用。但是,当 onActivityCreated() 被调用时,它会将 Bundle savedInstanceState 接收为 null。

如何从包中获取数据。

代码:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

MyListAdapter adapter = new MyListAdapter(getActivity(),
R.layout.my_row, titles, icons, this);

setListAdapter(adapter);

if (savedInstanceState != null) {
// Never goes inside this condiiton.
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}

最佳答案

那么这意味着您的 Activity 和 Fragment 只是暂停了,不必保存它们的实例状态(不一定调用 onSaveInstanceState())。

如果您想确保 onSaveInstanceState() 被调用,请在设备的开发者设置中选择“不保留 Activity ”。然后,每次暂停 Activity 时,系统都会终止它并强制调用 onSaveInstanceState()(当然,你只是按回键时除外)

关于android - onActivityCreated() 中的 Bundle 返回 null,即使在 onSaveInstanceState() 中设置值之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455904/

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