Android Activity的生命周期

刚刚入门安卓的学习,我发现Android的活动是可以层叠的。我们每启动一个新的活动,就会覆盖在原活动之上。然后按返回键会退出最上面的活动,下面的活动就会重新显示出来。

一、返回栈

经过深入了解,发现安卓系统是通过Task来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈。在默认情况下,每当启动一个新的活动,它会在返回栈中入栈,当按下返回键或调用finish()方法,处于栈顶的活动会出栈。此外,系统总会显示处于栈顶的活动给用户
在这里插入图片描述
二、活动的4中状态

  1. 运行态
    当一个活动位于返回栈的栈顶,这时的活动就处于运行态。

  2. 暂停态
    当一个活动不再处于栈顶,但是仍然可见的状态。因为并不是每个活动都会占据整个屏幕,比如可以以对话框的形式占用一小块区域,这种暂停态的活动依旧是完全存活的。

  3. 停止态
    当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了 停止状态。但是系统依旧会为这种活动保存相应的状态和成员变量,但是这并不是可靠的,当其他地方需要内存,这种状态的活动可能会被回收。

  4. 销毁态
    当一个活动从返回栈中移除后的状态。

三、七个生命周期的方法
Activity类中定义了7个回调方法,设计活动生命周期的每一个环节。

  1. onCreate():
    这方法会在活动首次被创建的时候调用,在这个方法中应该完成活动的初始化的操作,比如加载布局、绑定事件等等。

  2. onStart():
    活动由不可见变为可见的时候调用。

  3. onResume():
    这个方法在活动准备好和用户进行交互时进行交互时使用。此时的活动一定位于返回栈的栈顶

  4. onPause():
    这个方法在系统准备去启动或恢复另一个活动时调用,此时将当前活动给暂停掉。系统会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但是这个方法的执行速度一定要快,否则会影响行的栈顶活动的使用。

  5. onStop():
    调用这个方法会使得活动完全不可见。所以,如果即将启动的新活动是一个对话框的活动,那么原活动执行onPause方法后不会执行onStop。

  6. onDestory():
    这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。

  7. onRestart():
    这个方法在活动由停止状态变成运行状态前调用。

以上方法除了onRestart,两两相对,将活动分为三个生存期:

  • 完整生存期: onCreate和onStop之间的经历。
  • 可见生存期: onStart和onStop之间的经历。期间,活动对用户总是可见的,即便有可能无法和用户进行交互。在onStart中对资源进行加载,在onStop中对资源进行释放。
  • 前台生存期:在onResume和onPause之间的经历。期间活动总是处于运行状态的,此时的活动是可以和用户进行交互的。
    -示意图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值