Activity与Activity调用栈分析

本文详细探讨了Android中的Activity形态及其生命周期,包括启动、暂停、恢复和销毁的过程。介绍了Activity如何在Android任务栈中管理和切换,以及通过AndroidManifest的启动模式和Intent Flag如何定制Activity的行为。此外,还讨论了singleTop、singleTask和singleInstance等特殊启动模式的运用场景和限制。
摘要由CSDN通过智能技术生成

Activity是与用户交互的第一接口,它提供的是一个用户完成指令的窗口。当我们创建Activity之后,通过调用setContentView(View)方法来给该activity指定一个显示的界面,并且以此为基础提供给用户交互的接口。系统采用Activity栈的方式来管理Activiity。

1.Activity的形态

Activity拥有多种形态,它可以在多种形态中进行切换,以此来控制自己的生命周期。

  1. Active/Running
    这时候,Activity处于Activity栈的最顶层,是可见,并且与用户进行交互。

  2. Paused
    当Activity失去焦点,被一个新的非全屏的Activity或者是一个透明的Activity放置在栈顶时,Activity就转化成Paused形态。但它只是失去了与用户交互的能力,所有的组昂太爱信息,成员变量都还保持着,只有在系统内存极低的情况下,才会被系统回收掉。

  3. Stoped
    如果一个Activity被另一个Activity完全覆盖,那么Activity就会进入Stoped形态,此时它不在可见,但是依然保持了所有的状态信息和成员变量。

  4. Killed
    当Activity被锡系统回收掉或者是Activity从来没有创建过,Activity就处于Kiled形态。

2.生命周期

下图为经典的Activity生命周期图:
这里写图片描述

在此图中的多个Activity生命周期中,只有三个状态是稳定的,而其他状态都是过度状态:

  1. Resumed
    这个状态就是前面说的Active/Running形态,此时Activity处于Activity栈顶,处理用户的交互。

  2. Paused
    当Activity的一部分被遮挡的时候进入这个状态,这个状态下的Activity不会接受用户输入。

  3. Stopped
    当Activity完全被覆盖时进入这个状态,此时Activity不可见,仅在后台运行。

2.1Activity启动与销毁过程

在系统调用了onCreate()之后,就会马上调用onStart(),然后继续调用onResume()以进入Resumed()状态,最后鹿就会停留在Resume

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值