背景
需要在 fragment 进行 replace 然后 pop 回来之后,一些选择项还是原来的选项。
方法
- 查阅了很多资料,发现如果是 view 类型那么可以被自动保存,非 view 的就需要我们自己来保存了。
 - 按照 fragment 的生命周期来说,需要在 
onDestroyView中进行保存,在onCreateView中进行读取。 - 如果是比较简单的,那么直接使用本身生成的 fragement 类型中的 
setArguments和getArguments来得到 bundle 来操作即可。 - 如果是比较复杂的,最好自己来实现一个保存和读取的,方便控制。然后在 
onDestroyView,onCreateView里面进行调用即可。 
    public Bundle setSaveBundle(Bundle bundle) {
        if (bundle == null) {
            bundle = new Bundle();
        }
        bundle.putInt("type_index", analysisTypeLastSelected);
        DLog.d(TAG, "setSaveBundle: " + "type_index: " + analysisTypeLastSelected);
        return bundle;
    }
    public void getSaveBundle(Bundle bundle) {
        if (bundle == null) {
            DLog.d(TAG, "getSaveBundle: " + "null!");
            return;
        }
        analysisTypeLastSelected = bundle.getInt("type_index");
        DLog.d(TAG, "getSaveBundle: " + "type_index: " + analysisTypeLastSelected);
    }
参考:
[译] 保存/恢复 Activity 和 Fragment 状态的最佳实践
https://segmentfault.com/a/1190000006691830  
切换Fragment时实现数据保持
https://www.cnblogs.com/zhujiabin/p/4192613.html  
Pro Android学习笔记(四一):Fragment(6):数据保留
https://blog.csdn.net/flowingflying/article/details/12749403  
Android Fragment 生命周期onCreatView、onViewCreated
https://blog.csdn.net/asdf717/article/details/51383750  
Android中Fragment数据保存和恢复
https://www.jianshu.com/p/015c79bedb41  
onSaveInstanceState()和onRestoreInstanceState()使用详解
https://www.jianshu.com/p/27181e2e32d2  
Android 使用onSaveInstanceState保存数据
https://blog.csdn.net/qq_34694875/article/details/109530012  
android onSaveInstanceState方法
https://www.jianshu.com/p/5dde143a143f  
Android Fragment 在返回栈popBackStack() ,返回时onResume问题
https://blog.csdn.net/qq_34983989/article/details/78126362  
Android Fragment回退栈管理(popBackStack)
https://blog.csdn.net/qq_35988274/article/details/100518346