保留碎片
在許多情況下,通過簡單地使用片段重新建立 Activity 時,我們可以避免出現問題。如果你的檢視和狀態在片段內,我們可以在重新建立活動時輕鬆保留片段:
public class RetainedFragment extends Fragment {
// data object we want to retain
private MyDataObject data;
// this method is only called once for this fragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// retain this fragment when activity is re-initialized
setRetainInstance(true);
}
public void setData(MyDataObject data) {
this.data = data;
}
public MyDataObject getData() {
return data;
}
}
這種方法可以防止片段在活動生命週期中被破壞。它們保留在 Fragment Manager 中。有關更多資訊, 請參閱 Android 官方文件。
現在,你可以在建立片段之前檢查片段是否已經存在,並且片段將在配置更改中保留其狀態。有關更多詳細資訊, 請參閱處理執行時更改指南。