正如文档所说:
在很多情况下,一个片段可能大部分被拆除(例如当放置在没有显示 UI 的后台堆栈时),但它的状态不会被保存,直到它拥有的 Activity 实际需要保存它的状态。
重点是什么?假设您有在片段被销毁时要保存的成员变量:
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putLong("userId", mUserId);
outState.putString("username", mUsername);
}
当 onSaveInstanceState 最终被调用时(例如当宿主活动被销毁时),这些变量不再存在,所以你得到一个空指针异常。
有什么办法解决这个问题?谢谢!