当活动被系统回收了,临时的数据也会被回收,打个比方我们在微信发信息的时候,突然进来一个电话,然后系统内存不足,微信的活动被系统回收了,但你聊完电话再返回为微信的活动发现之前打的文字都没有了,这是一个糟糕的体验。Activity提供一个onSaveInstanceState()的方法,在活动被回收之前把临时的数据保存起来时,在MainActivity中添加如下代码:
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
String tempData = "Something you just typed";
outState.putString("data_key", tempData);
}
然后通过onCreate()方法提取出来,代码如下:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null){
String tempData = savedInstanceState.getString("data_key");
Log.e("tag", tempData);
}
}