android 未在片段上调用onSaveInstanceState

jv4diomz  于 2022-11-03  发布在  Android
关注(0)|答案(2)|浏览(146)

我正在用另一个片段替换一个片段:

FragmentTransaction transaction = mFragmentManager.beginTransaction();

    transaction.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit);
    transaction.replace(R.id.main_container, nextFragment, nextFragment.getClass().toString());
    transaction.addToBackStack(nextFragment.getClass().toString());
    transaction.commit();

然而,被替换的片段,它的onSaveInstanceState没有被调用。我做错了什么?

mutmk8jj

mutmk8jj1#

在片段中,它们得所有生命周期回调都直接绑定到其父Activity.因此,当其父Activity调用onSaveInstanceState时,就会在片段上调用onSaveInstanceState.
看看这个帖子:
FragmentActivity onSaveInstanceState not getting called

gtlvzcf8

gtlvzcf82#

正如@StevenByle在https://stackoverflow.com/a/15935826/2519297中提到的
您可以通过在onPause内直接调用onSaveInstanceState(new Bundle());来解决此问题

相关问题