android activity启动流程(全网最全Android开发笔记)

一.先理解栈的概念(放置Activity实例的容器) 1.Task(线性表) 任务栈Task,用来放置Activity实例的容器,先进后出,主要有2个基本操作:压栈和出栈,其所存放的Activity是不支持重新排序的,只能根据压栈和出栈操作更改Activity的顺序。 2.app启动时,系统会为它默认创建一个对应的Task,用来放置根Activity ps:Activity之间可以相互启动,当前应…

一.先了解栈的定义(置放Activity实例的器皿)

1.Task(线性表)

每日任务栈Task,用于置放Activity实例的器皿,先进后出,关键有2个操作过程:压栈和出栈,其所储放的Activity是不可以再次排列的,只有依据压栈和出栈实际操作变更Activity的次序

2.app启动时,系统软件会为它默认设置建立一个相应的Task,用于置放根Activity

ps: Activity中间可以互相启动,现阶段运用的Activity可以去启动别的使用的Activity(照相机),那麼也就是说栈的作用可以把其他app的activity添加到自身app的栈里.

因此Task可以解释为负责全部使用的Activity实例的栈,可是.android5.0以后 跨过程启用activity,这一activity会被放进到一个新的栈中。

二.启动模式(只有依据压栈和出栈实际操作变更Activity的次序,因此是启动模式是以哪一种姿态入栈)

根据在AndroidManifest文档中的属性andorid:launchMode来设定或是根据Intent的flag来设定

1.standard(基本姿态入栈)

默认设置模式。在这个模式下,都是会默认设置建立一个新的实例。因而,在这类模式下,可以有好几个同样的实例,也容许好几个同样Activity累加。应用领域:绝大部分Activity。

2.singleTop(栈顶复用姿态入栈)==FLAG_ACTIVITY_SINGLE_TOP

栈顶复用模式,假如要打开的activity在每日任务栈的顶端早已存有,就不容易建立新的实例,反而是启用 onNewIntent() 方式 。防止栈顶的activity被反复的建立。应用领域:在状态栏点一下接到的通告,随后必须启动一个Activity,这一Activity就可以用singleTop,不然每一次点一下都是会新创建一个Activity。某一情景下持续迅速点一下,启动了2个Activity。假如这个时候待启动的Activity应用 singleTop模式也是可以预防这一Bug的。

3.singleTask(栈内复用姿态入栈)==FLAG_ACTIVITY_CLEAR_TOP

栈内复用模式, activity只能在每日任务栈里边存有一个实例。假如要激话的activity,在每日任务栈里边早已存有,就不容易建立新的activity,反而是复用这一早已出现的activity,启用 onNewIntent() 方式 ,而且清除这一activity每日任务栈上边全部的activity(CLEAR_TOP返回栈顶)。应用领域:大部分App的首页。针对绝大多数运用,在我们在主界面点一下退回按键的情况下全是退出应用,那麼在我们第一次进入主界面以后,主界面坐落于栈底,之后无论大家打开了多少个Activity,只需大家再度返回主界面,都应当应用将主界面Activity上任何的Activity清除的方法来让主界面Activity处在栈顶,而不是往栈顶添加一个主界面Activity的实例,根据这些方法可以确保退出应用时全部的Activity都能报消毁。

4.singleInstance(不进栈)

单一实例模式,全部手机操作系统里边只有一个实例存有。不一样的使用去开启这一activity 共享资源公共的同一个activity。他会运作在自身独立,单独的每日任务栈里边,而且每日任务栈里边仅有他一个实例存有。应用领域:通话拨打电话页面。这类模式的运用状况较为少见,在Launcher中将会应用。或是你确定你需要使Activity只有一个实例。提议慎重应用。

5.FLAG_ACTIVITY_NO_HISTORY

Activity使用这类模式启动Activity,当该Activity启动别的Activity后,该Activity就消失了,不容易保存在Activity栈中。

三.FLAG_ACTIVITY_NEW_TASK

这一特性标准是:设定此情况,最先会搜索是不是具有和被启动的Activity具备同样的两亲性的每日任务栈(即taskAffinity,同一个应用软件中的activity的两亲性一样),如果有,则立即把这个栈总体挪动到前台接待,并维持栈中的情况不会改变,即栈中的activity次序不会改变,要是没有,则新创建一个栈来储放被启动的activity。

1.getTaskId();获得现阶段activity所在的栈

2.同一个应用软件中的activity的两亲性一样(taskAffinity),换句话说 Actviitya intent时setFalg(
Intent.FLAG_ACTIVITY_NEW_TASK)到Activityb 可是Actviitya和Activityb 或是一个栈

在不一样的运用中自动跳转才会建立新的Task。

3.在Activity前后文以外启动Activity必须给Intent设定FLAG_ACTIVITY_NEW_TASK标示,要不然会报出现异常。

四 FLAG_ACTIVITY_CLEAR_TASK(务必和FLAG_ACTIVITY_NEW_TASK一起应用)

清除栈内activity,只留有这一activity

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月6日 下午1:36
下一篇 2022年5月6日 下午1:38

相关推荐

  • 阿里巴巴在哪里上市,阿里巴巴美国上市原因

    美国时间2014年9月19日早上九点半左右,中国最大电商阿里巴巴登陆纽交所,八位阿里巴巴客户现场敲钟宣布交易开始,股价为68美元。 随着纽约证交所今日敲响开市钟声,该公司的上市也将达到高潮—不过与众不同的是,包括董事长马云在内的公司高管都不会上台敲钟。而是8位年轻人站在台上。8个敲钟人分别是:两位网店店主、快递员、用户代表、一位电商服务商、网络模特和云客服,还有一位是来自美国的农场主,他的果园…

    2022年7月5日
    840
  • 网站设计方案怎么写,网站设计规划文案样本参考

    一、网站首页需要包含的内容 1.公司基本信息:公司名称、形象logo等。 2.导航栏:首页、公司简介、产品介绍、实施方案、技术服务、联系方式等。其中在产品展示页面“产品咨询”、“价格咨询”等链接点击后链接到销售网络。要求可根据ip地址显示用户所在地区的业务员,经销商联系资料。 3.展示区:①公司形象,包括图片、文字简介及相关主题。②产品展示,包括产品种类、名称及简单介绍。 网站建设方案 二、首页设…

    2022年8月28日
    480
  • 忆捷固态硬盘怎么样(深度评测其产品质量)

    随着时代的不断发展,人们的工作生活速度越来越快,在商务场合或者是在日常生活中,常常需要工具来储存数据,而之前风靡一时的移动U盘已经无法午饭满足人们的需求,大容量便携式移动硬盘应运而生,并且能够满足更多人的需求,这款忆捷的移动硬盘就是一款非常不错的高品质移动硬盘,那么它究竟有怎样的表现呢? 首先在外观上,忆捷移动硬盘整体采用黑色长方体的设计,尺寸大小为2.5英寸,非常方便携带。表面采用磨砂设计,手感…

    2022年10月22日
    750
  • 什么软件可以看电视频道,2019电视直播软件排行

    怎么免费看高清电视?现在越来越多的人购买智能电视,而智能电视可以安装第三方软件的功能让很多人可以不花钱就能观看新闻、电视剧、体育赛事直播,这样不但省掉了一部分有线电视的费用,第三方直播软件画面更加清晰,可以观看几百甚至上千个频道。那么有哪些电视直播软件比较好用呢?且看我慢慢道来。 第三方应用软件如何安装? 安装方式: 1、在电脑端下载所要安装的“电视直播软件”应用安装包,拷贝到U盘中。 U盘插入智…

    2022年6月15日
    720
  • 如何导入手机通讯录,苹果通讯录一键导入技巧

    【ROM之家】近段时间不少机友一定把自己的爱机换成了华为G9 Plus,但是接下来第一件要做的事情肯定就是把联系人导入过来。可能很多机友还是选择手动输入旧手机上联系人的方式来备份自己的联系人。这样虽然比较可靠,但是容易浪费时间也容易出错。那么下面小编就来教教大家如何简单的为华为G9 Plus导入联系人吧。 换了新手机,如何最快速导入联系人?将旧手机里的联系人保存在你的SIM卡里,然后将SIM卡插入…

    2022年6月29日
    610
  • 建设一个网站需要多少钱,网站建设费用明细表

    现在的建站技术早就不是原来刀耕火种的年代了,当初需要花大价钱找人设计、开发和运维的事情现在已经变得十分简单,当然体量特别大的网站除外。但如果你只是做个人博客或者企业展示类型的网站,写写文章或者做一些品牌展示的事情,甚至想加个在线商城功能,实际上一个人稍微花点时间完全可以自己搞定。 完全无技术门槛的自助建站系统。 自助建站技术在国外已经发展得相当成熟了,而国内很多网络公司非常抵制这类产品,因为它把建…

    2022年7月23日
    590
  • 微商销售话术900句,客户嫌贵的经典回答你们想知道吗

    在做微商的时候,最重要的问题就是销量。而想增加销量,要充分掌握用户的心理,同时掌握一定的话术,这样才能提高销售成功率,带来销量。 一、首先要把控用户的心理 1、面子心理 国人有句俗语:给别人面子就是给自己面子。微商也好,网店也好,你的面子就在于你的店铺的整体布局、整体风格,是不是能够跟你的内容、服务相匹配。 面子心理可能是国人特有的特殊心理,在它的影响下,每个消费者进入你的店铺时,就已经默认你的产…

    2022年6月9日
    920
  • 五大层面详解智能手机创新天花板

    即便如此,也不可否认微创新在效率和体验上对手机所作出的贡献。5G更快了,但也许慢一点,会有更多时间看清未来。

    2022年9月8日
    590
  • 企业怎么报税,企业具体报税流程

    导读:增值税专用发票需要做认证,认证时间也是有时间限定的,小编下面就来讲讲小规模纳税人报税流程和时间,这是个老问题,不少新人都会问到的,只要有一次经验就好。 小规模纳税人报税流程和时间 登陆当地的电子税务局,输入用户名和密码,或者用CA证书进行登陆。 点击“申报缴税”,点击需要申报的项目,例如增值税的申报,点击“填写申报”。 根据企业相关情况进行填写申报表,再点击“下一步”进行提交申报,再进行清缴…

    2022年8月16日
    570
  • 燃气热水器故障判断与维修(热水器的常见故障排除)

    厨电配件小陆下面给小伙伴们介绍一下恒温机的故障现象,以及对应的故障原因和排除方法。 故障现象故障原因排除方法 探头故障1.温度传感器和水流传感器接线端子1.将插线重新拔下来插好 与主板接触不良 2.温度传感器和水流传感器本身故障问题2.更换温度传感器和水流传感器 3.主板问题3.更换主板 4.对于百威PX247和PX315的主板水流传感器4.重新对应接线 3线、4线用错了,也会报警探头故障 点火失…

    2022年8月23日
    2270

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信