Activity生命周期详解

  • 首先Activity的生命周期分为7个部分
  • 首先看一下经典视图

  • 是不是对整个的有一个大概的了解了别急再看一图

  • 下面对照上面的两个图来看一下Activity的生命周期
    • 各个方法的具体解释:
    • void onCreate(Bundle savedInstanceState) 
      当Activity被第首次加载时执行。我们新启动一个程序的时候其主窗体的onCreate事件就会被执行
    •  void onStart()  activity变为在屏幕上对用户可见时调用。

    onCreate事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体前已经过去了一段时间,窗体已经执行了onStop事件,但是窗体和其所在进程并没有被销毁,用户再次重新查看窗体时会执行onRestart事件,之后会跳过onCreate事件,直接执行窗体的onStart事件。

    • void onResume()   activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。

    onStart事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体时,窗体还没有被销毁,也没有执行过onStop事件(窗体还继续存在于Task中),则会跳过窗体的onCreate和onStart事件,直接执行onResume事件。

    • void onPause()   activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!

    窗体被交换到后台时执行

    • void onStop()    activity被停止并转为不可见阶段及后续的生命周期事件时调用。

    onPause事件之后执行。如果一段时间内用户还没有重新查看该窗体,则该窗体的onStop事件将会被执行;或者用户直接按了Back键,将该窗体从当前Task中移除,也会执行该窗体的onStop事件。

    • void onRestart()   重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。onStop事件执行后,如果窗体和其所在的进程没有被系统销毁,此时用户又重新查看该窗体,则会执行窗体的onRestart事件,onRestart事件后会跳过窗体的onCreate事件直接执行onStart事件。
    • void onDestroy()   activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用onFinish()方法或者系统决定停止该活动以释放资源!

    Activity被销毁的时候执行。在窗体的onStop事件之后,如果没有再次查看该窗体,Activity则会被销毁

     

  • 示例:

    启动Activity:

    onCreate-->onStart-->onResume-->Activity运行

     

    当前Activity被其他的Activity覆盖其上或者是被锁屏:

    调用onPause方法

     

    当前Activity由被覆盖状态回到前台或者是解锁:

    调用onResume方法

     

    当前的Activity跳转到新的Activity界面或者是按home建退回到主屏幕:

    调用onStop方法,进入停滞状态

     

    用户回退到此Activity

    onRestart-->onStart-->onResume


巧妙记忆:

Activity的生命周期如同一个人的一生:

从母亲怀孕(onCreate)-->出生(onStart-->牙牙学语开始记事(onResum--进入壮年…--进入中年(onPause-->步入老年(onStop-->死亡(onDestroy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值