什么时候强行重建活动?

时间:2016-07-02 01:40:01

标签: android android-activity

Android文档说配置更改可以强制重新创建活动,最常见的更改是轮换。现在,有一些方法可以确定是否正在销毁要重新创建的活动,但是这些方法的所有(?)都是在onStop()之后调用的,并且不能保证或建议用于数据保存目的。

举一个例子,有一个EditText活动,如果用户通过后退按钮,app switch,e.t.c导航离开应用程序,它会自动保存他们编写/更新的内容。但是,当配置发生更改时,用户可能不想保存更改,因此我需要为这些情况做好准备。

2 个答案:

答案 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()

希望这有帮助。

相关问题