Android学习随笔之活动或碎片回收 临时数据的保存

触发条件

 任何活动被回收的场景

解决办法

活动中提供了一个onSaveInstanceState,这个方法会在活动被回收前调用,因此可以

通过此方法保存数据

     onSaveInstanceState 需要传递一个Bundle类型的参数

    Bundle提供了一些方法用于保存数据

    常见的有putInt..PutString

    保存的方式也很简单直接PutString("key",value);即可

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("test","1");
}

恢复数据的方法

因为活动被回收了再次调用活动的时候可能不会触发onRestart 而是重新创建活动 onCreate

下面是在碎片里面做的操作所以没有

setContentView(R.layout.main_layout);

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState!=null){
        String data=savedInstanceState.getString("test");
    }
}

每次这样做感觉好麻烦啊无意间发现一个大神做的一个自动化保存的文章

Android 一个轻量级的自动恢复内存数据框架



猜你喜欢

转载自blog.csdn.net/qq_33981438/article/details/80511113