保留碎片
在许多情况下,通过简单地使用片段重新创建 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 官方文档。
现在,你可以在创建片段之前检查片段是否已经存在,并且片段将在配置更改中保留其状态。有关更多详细信息, 请参阅处理运行时更改指南。