Android生命周期

Posted by mapoto4 on 2019-04-17

典型情况下的生命周期

有用户参与的情况下,Android所经过的生命周期的改变。

onCreate(Bundle)

通过覆盖onCrete(Bundle),activity可以预处理以下UI工作:

  • 实例化组件并将它们放置在屏幕上(调用setContentView (int) 方法)
  • 引用已实例化的组件
  • 为组件设置监听器以处理用户交互
  • 访问外部模型数据
    注: 禁止自己调用onCreate(Bundle)方法或者任何其他activity生命周期方法。为通知activity状态变化,只需要在子类里覆盖这些方法,Android根据用户状态以及系统运行情况自动调用。

异常情况下的生命周期

Android被系统回收或者由于当前设备Configuration发生改变从而导致Activity被销毁重建。

旋转屏幕

覆盖onSaveInstanceState(Bundle)方法并不仅仅用于处理与设备旋转相关的问题。
覆盖onSaveInstanceState(Bundle)方法,在Bundle对象中,保存当前activity的小的或暂存状态的数据;
覆盖onStop()方法,保存永久性数据,如用户编辑的文字等。

Android生命周期测试

启动App
Oncreate -> onStart -> onResume
熄灭屏幕/返回主界面
onPause -> onSaveInstance -> onStop
唤醒屏幕
onRestart -> onStart -> onResume
退出
onPause -> onStop -> onDestroy
旋转屏幕
onPause -> onSaveInstance -> onStop -> onDestroy -> onCreate -> onStart -> onResume
A 切换 B
onCreate_A -> onStart_A -> onResume_A -> onPause_A -> onCreate_B -> onStart_B -> onResume_B -> onStop_A