Activity的四种状态和启动模式

Activity的四种状态

1. Active/Running

当一个Activity被创建后,完全显示在屏幕的最前端,且可以执行交互。该Activity位于Activity任务栈的栈顶。依次经过生命周期的回调onCreate()->onStart()->onResume(),执行完onResume()回调后,该Activity处于Running状态,即运行状态。

onCreate():在系统首次创建Activity时触发。这个回调方法必须被实现,而其它回调方法可以不强制要求实现,可以根据自己的需要实现。在这个方法里一般进行声明界面(setContentView(View)),绑定视图findViewById(int),初始化成员变量。若Bundle参数不为null通过Bundle参数恢复数据。执行完onCreate()后,该Activity处于"以开始状态",接下来依次执行onStart()onResume()回调方法。

2. Paused

当前Activity失去焦点时,一个非全屏的Activity或者是半透明的Activity放置到栈顶时,虽然仍然部分可见,但已经不能再和用户进行交互。他仍然与窗口管理器保持联系,保持所有的状态和成员信息。

3. Stopped

当被另一个Activity完全覆盖,不可见时进入Stopped状态,仍然保持着状态和成员信息。无法与用户进行交互

4. Killed

如果一个Activity处于Paused或Stopped状态,系统可以将它从内存中删除,有两种删除方法,一种是要求它自己结束,一种是直接停止该Activity的线程。被销毁的Activity再次显示给用户时需要重新加载。

状态转换

来自百度

Activity启动模式

Activity启动模式一共有四种:

  • standard
  • singleTop
  • singleTask
  • singleInstance

standard标准模式

  • 创建没有限制,每次使用intent都是一个新的Activity
  • Activity被创建在启动其的Activity的任务栈顶端
  • Android Lollipop之后,被启动的Activity如果不是同一个应用,会新建一个任务栈

singleTop(单顶)

  • 当顶部已经有相同的Activity时,不会再创建新的实例,而是回调任务栈中已经存在的该Activity的onNewIntent( )方法。
  • 当前Activity位于栈顶,如果想要再创建一个相同的Activity,则不会成功,即保持栈顶该Activity的实例只有一个。
  • 不是栈顶时和standard一样

singleTask(单一任务)

  • Activity在Android系统中只允许存在一个实例。
  • 当想要创建的Activity已经有了实例的时候,会将之前的Activity在其任务栈上位于他之上的所有Activity销毁,以让目标Activity处于栈顶。

singleInstance单例模式

  • 这种启动模式和singleTask几乎一样,它也只允许系统中存在一个目标Activity
  • 但是一个Activity承包了整个任务栈

如何使用

  1. 在AndroidMenifest.xml文件中设置
    - 在<activity>标签中设置android:launchMode="****"属性即可
  2. 通过为Intent添加标识来设置
    - intent.addFlags();
  • FLAG_ACTIVITY_NEW_TASK 与"singleTask"启动模式的作用一样。

  • FLAG_ACTIVITY_SINGLE_TOP
    与"singleTop"启动模式的作用一样。

  • FLAG_ACTIVITY_CLEAR_TOP

Ljl233
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简单介绍AndroidActivity四种启动模式
09-02
Android开发中,Activity是构成应用程序用户界面的基本单元。当我们打开一个新的界面时,实际上是在创建一个新的Activity实例。...希望本文的介绍能帮助开发者更好地理解和应用AndroidActivity四种启动模式
Linux之进程管理
Ying_smile的博客
04-12 428
一、进程定义 进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是cpu未完成的工作,或者就是一个正在运行中的程序。 进程状态: R(Running):该程序正在运行中 S(Sleep):该程序目前正在睡眠状态,但可以被唤醒 D :不可以被唤醒的睡眠状态,通常进程可能在等待 I/O 的情况 ...
防火墙设置与配置开放端口
Stefan的博客
06-17 6747
一、iptables防火墙 1、 查看防火墙状态 service iptables status 出现Active: active (running)高亮显示则表示是启动状态。 出现 Active: inactive (dead)灰色表示停止状态。 2、 CentOS6关闭防火墙使用以下命令: # 临时关闭 service iptables stop # 禁止开机启动 chkconfig iptables off # 重启防火墙 service iptables restart 3、 CentOS7
Android Activity生命周期和启动模式
最新发布
huaihong1986的博客
08-02 670
当一个具有singleTask模式Activity请求启动后,比如Activity A,系统首先会寻找是否存在A想要的任务栈,如果不存在,就重新重建一个任务栈,然后创建A的实例后把A放在栈中。如果存在A所需的任务栈,这时要看A是否在栈中有实例存在,如果存在的话,就会把A上面的其他Activity的实例clear,将A调到栈顶并调用它的onNewIntent方法,如果不存在,就创建A的实例,并把A压入栈中。action的匹配规则是Intent中的action必须能够和过滤规则中的action匹配。
将linxc-keepalived的active(runing)->active(exited)、docker的active(runing)->active(exited)
杨涛的博客
12-13 2649
在配置文件“vim /lib/systemd/system/docker.service ”中修改“Type=simple”使其以默认的普通方式启动再加上“RemainAfterExit=yes”systemd将该服务保持为活动状态,“Restart=no”使其结束后不必 重启,再设置“ExecStartPost=/bin/kill -HUP $MAINPID”服务启动过后执行这条命令,使其可以启动过后就将这个服务kill掉,保存退出再使用“systemctl daemon-reload”重新加载配置文件,
Linux系统控制与运行级别
cyj1261009240的博客
10-22 2939
录 一、系统服务控制 1、格式——systemctl 控制类型 服务名称 2、控制类型 二、Linux系统运行级别 2.1、查看运行级别 2.1.1、runlevel命令 2.2.2、systemctl工具 2.2.3、实验一 2.2、 临时切换运行级别 2.2.1、init命令 2.2.2、systemctl工具 2.3、设置永久运行级别 2.3.1、创建软连接方法 2.3.2、直接修改 2.4、优化启动过程 2.4.1、ntsysv工具(批量修改) 2.4.2、实验二
Activity四种启动模式及应用场景
小老鼠的博客
03-29 3700
面试的时候科大讯飞的一个面试官问我Activity启动模式和具体的应用模式;我也一想是啊,平时不太注意,只知道有这几个启动模式,结果到了关键的时刻卡壳了,做个记录: 一、Activity四种启动模式: (一)、基本描述 standard:标准模式:如果在mainfest中不设置就默认standard;standard就是新建一个Activity就在栈中新建一个activity实例; si...
Android编程中Activity四种启动模式
09-02
本文将深入解析Android四种Activity启动模式:standard、singleTop、singleTask以及singleInstance。 1. standard(标准模式) 这是Activity的默认启动模式,每次启动时都会创建一个新的Activity实例。这意味着...
activity四种启动模式demon
09-27
本文将深入探讨Activity四种启动模式,旨在帮助你更好地理解它们的工作原理,并能灵活运用到实际项目中。 首先,我们来看看Activity启动模式有哪些: 1. **标准模式(Standard)**:这是默认的启动模式,每次...
Android Activity四种启动模式 lunchMode 和 Intent.setFlags()
10-27
### Android Activity四种启动模式与 Intent.setFlags()详解 ...通过合理设置启动模式和使用 `Intent.setFlags()` 方法,开发者可以灵活地控制 Activity 在任务栈中的行为,从而构建更加高效的应用程序。
chrony
知本知至的博客
08-27 9219
centos8时间同步服务 CentOS7之前的版本用的是ntpdate服务,之后用的是chrony服务 默认是安装的了
Activity的生命周期及其状态
zhuwenliangzhuyeqing的博客
06-26 1062
Activity状态:1、Active/Running(活动状态):activity处于栈顶,可见,拥有用户焦点,可与用户进行交互。2、Paused(暂停状态):activity失去用户焦点,不可与用户进行交互。但是可见。会保存所有activity状态信息和成员变量。当一个非全屏的activity或者透明的activity覆盖于当前activity之上时,activity会处于此状态。内存紧张...
Linux服务器经常用的命令
qq_29664475的博客
09-03 291
Linux服务器经常用的命令
docker基础学习之五:k8s术语解释及kubectl相关命令
m0_46121636的博客
04-30 782
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用, Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 k8s和openstack一样,是非常复杂的。 k8s也是编排容器的工具。从创建集群、应用部署、应用提供服务、扩...
Activity 四种启动模式以及应用场景
u011228868的专栏
12-05 1002
Activity四种启动模式,在介绍这四种启动模式之前,我们需要先知道,为什么Google会为Activity设置四种启动模式呢? 我们先来介绍一个概念:任务栈 任务栈: 1,程序在创建时,会创建一个任务栈,这个任务栈的作用是用来存储启动和创建的Activity 2,此任务栈包含了一个集合,让存储的任务栈给用户有序的列出来,以至于不丢失他们的状态 3,任务栈用来保存Activity状态 4,退出程序时,清除任务栈中的Activity,任务栈销毁,程序退出 任务栈的缺点: 1,每开启一次页.
Activity启动模式有几种?使用场景?
lililijunwhy的博客
03-22 580
Activity启动模式Activity启动模式总共有4种: .Standard:标准模式 无论任务栈内是否已经存在要启动Activity实列,都会创建一个Activity放入任务栈,并置于栈顶。 .SingleTop:栈顶复用模式 如果任务栈顶已经存在一个要启动Activity实列,就复用该Activity置于栈顶不会重新创建Activity的实列,如果任务栈中或者任务栈顶...
Android Activity四种启动模式(图解实例和场景使用)
https://juejin.cn/user/1654096907477549/posts
12-01 1150
前言:有翅膀就该去飞翔,有梦想就该去追逐;一个人可以一无所有,但是不能没有梦想,可以一次次跌倒,但是不能一蹶不振。 一、概述 在实际开发中,应该为每个Activity指定恰当的启动模式,系统中使用任务栈来存储创建的Activity实例,任务栈是一种“先进后出”的栈结构。比如,我们多次启动同一个Activity,系统会将创建的实例一次加入到任务栈中,当按back返回键时,每按一次,一个Act...
docker:容器命令
OceanStar的博客
11-01 637
是什么 1、docker的理念是: 将运用与运行的环境打包成容器运行,运行可以伴随着容器,但是我们希望对数据的要求是持久化的。 容器之间希望能共享数据 2、docker容器产生的数据。但是如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除之后,数据自然也就没有了。 为了能够保存数据我们使用卷&amp;amp;lt;相当于移动硬盘&amp;amp;gt; 能干吗 容器的持久化 .....................
理解Android四种Activity启动模式
"Android 四种加载模式是标准模式(standard)、单顶模式(singleTop)、单任务模式(singleTask)和单实例模式(singleInstance)。理解这些模式对于优化应用程序的Activity管理至关重要,特别是减少内存消耗和提高...
写文章

热门文章

  • Git 合并冲突 4526
  • Activity的四种状态和启动模式 2307
  • Gradle Build 生命周期和获取Manifest示例 1755
  • FragmentManager坑 888
  • getParent()与getRootView() 838

分类专栏

  • Java 1篇
  • 笔记

最新文章

  • Git 合并冲突
  • Android-skin-support换肤框架原理
  • 浅析Java反射
2022年1篇
2020年13篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢革命英雄雕塑宜春学校玻璃钢雕塑制作玻璃钢人物雕塑哪家便宜雕塑玻璃钢人物像安庆景观玻璃钢花盆玻璃钢花盆价钱便宜泰州商场新年美陈玻璃钢雕塑技术标镜面玻璃钢卡通雕塑定制辽宁玻璃钢造型雕塑公司日照玻璃钢雕塑定制西城区专业的商场美陈黑龙江特色玻璃钢雕塑联系方式专业玻璃钢雕塑厂家草莓玻璃钢卡通雕塑价格云南水果玻璃钢雕塑春季商场美陈布置西双版纳玻璃钢雕塑供应成品玻璃钢雕塑摆件定制商场美陈导视牌来宾玻璃钢雕塑厂商场美陈点讲解山东特色商场美陈怎么样宣城景观玻璃钢雕塑销售电话枝江玻璃钢门头雕塑海南玻璃钢商场美陈雕塑嘉定区玻璃钢雕塑哪家好福州欧式玻璃钢雕塑设计玻璃钢金属雕塑二七区玻璃钢小品雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化