当活动处于停止状态是,很有可能会被系统收回,如果活动中存在临时数据该怎么办?
在Activity中有一个onSaveInstancesStat()方法,这个方法可以保证,在系统收回活动之前一定会被调用。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String tempData = "临时数据";
outState.putString("data_key", tempData);
}
重写onSaveInstancesStat()方法,使用对应的数据类型方法,进行键值得保存。这样数据就保存下来了。
恢复数据的操作如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState!=null){
String tempData=savedInstanceState.getString("data_key");
Log.d(TAG,tempData);
}
}
首先判断saveInstanceState是否为空,若不为空,则用相应的数据类型方法取出,参数为键值,这里我们简单用日志打印。