Android文档说配置更改可以强制重新创建活动,最常见的更改是轮换。现在,有一些方法可以确定是否正在销毁要重新创建的活动,但是这些方法的所有(?)都是在onStop()
之后调用的,并且不能保证或建议用于数据保存目的。
举一个例子,有一个EditText活动,如果用户通过后退按钮,app switch,e.t.c导航离开应用程序,它会自动保存他们编写/更新的内容。但是,当配置发生更改时,用户可能不想保存更改,因此我需要为这些情况做好准备。
答案 0 :(得分:0)
当由于配置更改而导致系统销毁某个活动时,会调用onSaveInstanceState。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
存储要在outState包中保留的数据。
然后,您将在onCreate和onRestoreInstanceState中接收存储的数据。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
使用它来检索先前存储在onSaveInstanceState中的数据。
答案 1 :(得分:0)
默认情况下,系统会自动保存少数小部件(EditText,TextView)的状态,这种魔法发生在super.onSaveInstanceState()
中。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
因此,如果您不想在EditText中保存文本,请在致电editText.setText("")
之前执行super.onSaveInstanceState()
。
希望这有帮助。