我正在用另一个片段替换一个片段:
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没有被调用。我做错了什么?
2条答案
按热度按时间mutmk8jj1#
在片段中,它们得所有生命周期回调都直接绑定到其父Activity.因此,当其父Activity调用onSaveInstanceState时,就会在片段上调用onSaveInstanceState.
看看这个帖子:
FragmentActivity onSaveInstanceState not getting called
gtlvzcf82#
正如@StevenByle在https://stackoverflow.com/a/15935826/2519297中提到的
您可以通过在
onPause
内直接调用onSaveInstanceState(new Bundle());
来解决此问题