基础知识整理之Activity生命周期

Activity

  • Activity生命周期流程图如下:
    基础知识整理之Activity生命周期_第1张图片
  • onCreate()
    onCeate()是Activity的第一个方法,表示Activity正在被创建,可以在该方法中执行setContentLayout加载布局资源、初始化Activity的数据等。
  • onReStart()
    表示Activity正在重新启动,在Activity有不可见(后台)变为可见(前台)时会调用onReStart()->onStart()->onResume(),这种情况是用户行为导致,如用户由主界面回到该Activity,或是由另一个Activity回到该Activity时
  • onStart()
    Activity已经启动,已经可见,仍处于后台,无法显示,无法与用户进行交互
  • onResume()
    Activity已经可见,处于前台显示,可以与用户进行交互;onResume与onStart区别,两者都是可见状态,但是onStart时Activity处于后台,onResume时Activity处于前台
  • onPause()
    Activity正在停止,仍然处于前台显示,不可与用户交互;在Activity上弹出Dialog,半遮盖Activity,Activity仍可见,但是不可以操作时,会调用这个方法
  • onStop()
    Activity处于后台,不可与用户交互,可以做一些稍微重量级的回收工作,不能太耗时
  • onDestroy()
    Activity即将被销毁,是生命周期的最后一个执行方法,可以在这里做huishougongz和最终资源释放

Activity生命周期分析

  • Activity启动流程 {onCreate() -> onStart() -> onResume()},Activity进入运行状态
  • Activity 被覆盖或者锁屏,调用{onPause()} Activity被暂停运行
  • Activity回到前台或解屏调用{onResume()} Activity进入运行状态
  • 跳转到其他Activity,或是回到Home界面,Activity退居后台,调用{onPause()->onStop()},Activity进入停滞状态
  • 由其他Activity或Home主界面回到此Activity,调用{onReStart() -> onStart() -> onResume()},Activity进入前台运行状态
  • 非正常关闭并重启Activity如:Activity在后台时,系统内存不足强制杀死Activity后,回到此Activity时会执行{onCreate() -> onStart() -> onResume()}
  • 退出Activity,调用{onPause() -> onStop() -> onDestroy()}
  • 在一个A-Activity创建B-Activity,他们的生命周期执行顺序:(A-onPause())->创建B-Activity -> (B-onCreate())->(B-onStart())->(B-onResume())->(A-onStop())
  • 生命周期中,onStart()/onStop()是一对,onResume()/onPause()是一对

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