保留碎片

在許多情況下,通過簡單地使用片段重新建立 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 官方文件。

現在,你可以在建立片段之前檢查片段是否已經存在,並且片段將在配置更改中保留其狀態。有關更多詳細資訊, 請參閱處理執行時更改指南。