Activity的生命周期

onCreate
onStart
onReStart
onResume
onPause
onStop
onDestroy

清晰描述onConfigurationChanged生命周期方法的场景

  • 简述场景

由于系统的数据储存和恢复机制,当系统配置发生改变后,Activity会被重建,如果不想让Activity重建,可以给Activity指定configChanges属性。这样当相关配置改变后,Activity不重建,取而代之的是调用onConfigurationchanged方法。

  • 案例

比如,Activity默认当横竖屏发生改变,Activity被重建,用上述方法在Menifest.xml中给Activity声明android:configChanges="orientation|srceenSize"

如果横竖屏切换不进行上述操作使Activity重建,系统的数据储存和恢复机制是如何处理

onSaveInstanceState、onRestoreInstanceState调用场景

@Override
  protected void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
  }

  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
      super.onRestoreInstanceState(savedInstanceState);
  }
  • Activity在异常情况下终止,系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法在onStop方法之前调用,和onPause没有既定的时序关系。
  • 在Activity被重建后,系统会在onStart之后调用onRestoreInstanceState,并且把销毁前onSaveInstanceState保存的Bundle对象作为参数传递给onRestoreInstanceState和OnCreate方法
  • 系统自动保存的状态:当前Activity的视图结构、文本框中用户输入的数据、ListView的滚动位置等

你可能感兴趣的:(Activity的生命周期)