要正确保存实例状态,Fragment请执行以下操作:
1.在片段中,通过覆盖保存实例状态
onSaveInstanceState()并在中还原
onActivityCreated():
class MyFragment extends Fragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ... if (savedInstanceState != null) { //Restore the fragment's state here } } ... @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //Save the fragment's state here }}2.而且很重要的一点,在活动中,你必须保存片段的实例在
onSaveInstanceState()和恢复
onCreate()。
class MyActivity extends Activity { private MyFragment public void onCreate(Bundle savedInstanceState) { ... if (savedInstanceState != null) { //Restore the fragment's instance mMyFragment = getSupportFragmentManager().getFragment(savedInstanceState, "myFragmentName"); ... } ... } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //Save the fragment's instance getSupportFragmentManager().putFragment(outState, "myFragmentName", mMyFragment); }}希望这可以帮助。



