Activity生命周期

在开发过程中,Activity的生命周期伴随业务、动画,也是最基础

生命周期图
  1. oncreate()
  2. onstart() // onRestart()
  3. onResume()
  4. onPouse()
  5. onStop()
  6. onDestory()
当A (Activity)-> B(Activity) UI页面,执行流程
  • A(Activity): onCreate() -> onStart() -> onResume() -> onPouse()
  • B(Activity): onCreate() -> onStart() -> onResume()
  • A(Activity): onStop() -> onDestory()
当A (Dialog)-> B(Activity) UI页面,执行流程
  • A(Activity): onCreate() -> onStart() -> onResume() -> onPouse()
  • B(Activity): onCreate() -> onStart() -> onResume()

Activity生命周期的四种状态

  1. running 当前显示在屏幕Activity的任务顶端,处于用户端可见状态
  2. poused 依旧处于用户可见状态,但是界面的焦点已经失去,此时的Activity无法与用户进行交互
  3. stopped 用户看不到当前界面,也无法与用户进行交互,完全被覆盖
  4. killed 当前界面被销毁,等待这个系统被回收
4种状态图

onSaveInstanceState(Bundle outState)

参数outState:数据保存,当Activity声明的周期结束的时候,需要保存Activity状态的时候,会将要保存的数据已键值对的形式保存在Bundel对象中。

调用时机:
  1. Activity 被销毁的时候调用,也可能没有销毁就调用
  2. 按下Home键,Activity进入了后台,此时会调用该方法
  3. 按下电源键,屏幕关闭,Activity进入后台
  4. Activity被压入任务栈的栈底
  5. 横竖屏切换,会销毁当前Activity并且重新创建

需要注意的是:当用户主动销毁不会调用,点击返回Back,或者是主动调用finish()方法,不会调用该方法,调用时机不确定,但是该方法一定是在onStop()方法之前调用,但是不确定是在onPause()方法之前还是调用之后。

onRestoreInstanceState(Bundle outState)

在Activity被系统销毁之后,且恢复Activity时被调用,只有销毁了之后重建的时候才调用,如果系统内存充足,系统没有销毁这个Activity,就不需要调用

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