情景
页面A有一个EditText输入框,有一个按钮。现在你输入一段文字,点击按钮跳到页面B。这时候由于内存不足,页面A被销毁。过了一会你点击返回键返回A,你会发现刚刚输入的文字没有了。(由于A被回收,这时候返回就不会执行onRestart(),而是从新onCreate(),A被重建)。
解决
保存参数:onSaveInstanceState()方法会携带一个Bundle参数,用于保存临时变量。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在这里保存临时参数
}
恢复参数:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
String data = savedInstanceState.getString("data");
}
}