在Android中重新创建活动

时间:2013-11-20 20:27:18

标签: java android

在Android应用中,当您旋转屏幕时,会调用onCreate()来绘制视图并创建对象。 TextView对象恢复以前的文本,但ImageView对象不恢复。这有什么理由吗?任何答案都可以帮助我理解Android的工作方式:)

非常感谢你,

1 个答案:

答案 0 :(得分:1)

在方向更改时,将重新创建整个活动。如果要在方向更改后恢复数据,可以使用onSaveInstanceState和onRestoreInstanceState执行此操作。更改方向时,调用onSaveInstanceState以在Bundle中保存值,并在重新创建onRestoreInstaceState之后调用,以再次从Bundle加载值。您可以这样使用:

  @Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);

    // "Value" is a tag with which you can load the String again in onRestoreInstanceState.
    savedInstanceState.putString("Value", this.stringToSave);   
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    // Use the tag "Value" to load the String again.
    this.stringToSave = savedInstanceState.getString("Value"); 
}