如果在活动A的基础上打开活动B,A就进入了停止状态,而恰好系统内存不足,就会把A回收掉。这样在B活动上按BACK键并不会返回A的onRestart,而是会从onCreate重新开始。假如A活动中已经输入了一段文字,那岂不是没有保存下来,要用户重新输入么?
其实Activity中还有一个onSaveInstanceState方法,这个方法保证在活动被回收前一定会调用。
<pre>
potected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
String tempData = "ttt";
outState.putString("key",tempData);
}
</pre>
然后在onCreate方法中恢复即可!
<pre>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null){
String tempData = savedInstanceState.getString("key");
...
}
}
</pre>