Activity生命周期

Activity 与Activity调用栈分析
* 内容:Activity生命周期与工作模式
* Activity调用栈管理
*
* Activity作为四大组件中出现频率最高的组件,了解Activity,对于开发高质量的应用非常有用。
* 1)起源
* Activity是与用户交互的第一接口,它提供了一个用户完成指令的窗口。当开发组创建了Activity之后,
* 通过调用 setContentView(View);方法来给该Activity指定一个显示的界面,并以此为基础提供给用户交互的接口。
* 系统采用Activity栈的方式来管理Activity
2)Activity的形态
Activity一个最大的特点就是拥有多种形态,它可以在多种形态间切换,以此来控制自己的生命周期
Activity/Running
这时候,Activity出于Activity栈的最顶层,可见,与用户进行交互。
Paused
当Activity失去焦点的时候,被一个非全屏或者一个透明的Activity放置在栈顶时,Activity就转化为Paused状态,
但是它只是失去了与用户交互的能力,所有状态信息、成员变量都还保持着,只有在内存极低的情况下,才会被回收。
Stopped
如果一个Activity被另一个Activity完全覆盖,那么Activity就会进入Stopped状态。
此时它不在可见,但仍然保持着所有状态信息和成员变量。
Killed
当Activity被回收或者Activity从未被创建的时候,Activity出于Killed状态,由此可见,用户不同的动作,会让Activity在这四种
形态间切换。
3)声明周期
Activity的声明周期 onCreate—>onStart—>onResume—>onPause—>onStop—>onDestroy
只有三种状态是稳定的,其他状态都是过渡状态,马上会结束。
Resumed: 就是 Activity/Running状态,此时Activity出于栈顶状态。
Paused: 当Activity的一部分被挡住的时候就进入这个状态,这个状态下的Activity不会接收用户输入。
Stopped:当Activity完全被覆盖的时候进入这个状态,此时Activity不可见,尽在后台运行。

    4)Activity启动与销毁过程
    在系统调用onCreate之后,就会马上调用onStart,然后继续调用onResume以进入Resume状态,最后就会停在Resumed状态,完成启动
    系统会调用onDestroy来结束Activity的生命周期让它回到Killed状态。

    Activity的启动与销毁过程:
    onCreate中,创建基本的UI元素。
    onPause与onStop:清除Activity的资源,避免浪费。
    onDestroy中,因为引用会在Activity销毁的时候销毁,而线程不会,所有清除开启的线程。
    5)Activity的停止过程
    栈顶的Activity不可见时,可以有两种状态,从部分不可见到可见,也就是恢复状态。
    从部分不可见到完全不可见时,也就是停止过程。系统总会在当前Activity不可见时调用onPause方法

当Activity有部分不可见到可见的时候,调用 onPause--->onResume 栈顶

当Activity由不可见到可见的时候,都会调用onStart方法,onStop—>onRestart—>onStart—>onResume 栈顶

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值