安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Activity的几种启动模式

1月1日 眸中星投稿
  一。先理解栈的概念(放置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(栈顶复用姿势入栈)FLAGACTIVITYSINGLETOP
  栈顶复用模式,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是调用onNewIntent()方法。避免栈顶的activity被重复的创建。应用场景:在通知栏点击收到的通知,然后需要启动一个Activity,这个Activity就可以用singleTop,否则每次点击都会新建一个Activity。某个场景下连续快速点击,启动了两个Activity。如果这个时候待启动的Activity使用singleTop模式也是可以避免这个Bug的。
  3。singleTask(栈内复用姿势入栈)FLAGACTIVITYCLEARTOP
  栈内复用模式,activity只会在任务栈里面存在一个实例。如果要激活的activity,在任务栈里面已经存在,就不会创建新的activity,而是复用这个已经存在的activity,调用onNewIntent()方法,并且清空这个activity任务栈上面所有的activity(CLEARTOP回到栈顶)。应用场景:大多数App的主页。对于大部分应用,当我们在主界面点击回退按钮的时候都是退出应用,那么当我们第一次进入主界面之后,主界面位于栈底,以后不管我们打开了多少个Activity,只要我们再次回到主界面,都应该使用将主界面Activity上所有的Activity移除的方式来让主界面Activity处于栈顶,而不是往栈顶新加一个主界面Activity的实例,通过这种方式能够保证退出应用时所有的Activity都能报销毁。
  4。singleInstance(不入栈)
  单一实例模式,整个手机操作系统里面只有一个实例存在。不同的应用去打开这个activity共享公用的同一个activity。他会运行在自己单独,独立的任务栈里面,并且任务栈里面只有他一个实例存在。应用场景:呼叫来电界面。这种模式的使用情况比较罕见,在Launcher中可能使用。或者你确定你需要使Activity只有一个实例。建议谨慎使用。
  5。FLAGACTIVITYNOHISTORY
  Activity使用这种模式启动Activity,当该Activity启动其他Activity后,该Activity就消失了,不会保留在Activity栈中。三。FLAGACTIVITYNEWTASK这个属性原则是:设置此状态,首先会查找是否存在和被启动的Activity具有相同的亲和性的任务栈(即taskAffinity,同一个应用程序中的activity的亲和性一样),如果有,则直接把这个栈整体移动到前台,并保持栈中的状态不变,即栈中的activity顺序不变,如果没有,则新建一个栈来存放被启动的activity。
  1。getTaskId();获取当前activity所处的栈
  2。同一个应用程序中的activity的亲和性一样(taskAffinity),也就是说Actviityaintent时setFalg(Intent。FLAGACTIVITYNEWTASK)到Activityb但是Actviitya和Activityb还是一个栈
  在不同的应用中跳转才会创建新的Task。
  3。在Activity上下文之外启动Activity需要给Intent设置FLAGACTIVITYNEWTASK标志,不然会报异常。
  四FLAGACTIVITYCLEARTASK(必须和FLAGACTIVITYNEWTASK一起使用)
  清空栈内activity,只留下这个activity
投诉 评论 转载

人工智能祖冲之奖将于2022年进行首次评选北京商报讯(记者石飞月)10月8日,北京商报记者获悉,新一代人工智能产业技术创新战略联盟联合鹏城实验室和华为共同发起了人工智能前沿创新奖祖冲之奖。祖冲之奖面向全球,奖励在AI基……现在什么牌子的冰箱质量最好?关于哪个牌子的冰箱质量好,我们可以参考权威机构发布的排行榜,毕竟综合了口碑、质量、销量以及售后等多个维度,因而具备一定的参考价值!第一,海尔。创立于1984年,是全球知名……欧盟芯片法案正式亮相敲定八年四倍产能目标还将设立专门基金《科创板日报》(编辑郑远方),欧盟《芯片法案》终于现出庐山真面目。2月8日,欧盟委员会正式发布《欧盟芯片法案(TheEuropeanChipsAct)》,促进当地半导体产……知乎国家何时整治程序员的高薪现象?太可怕了点击开发者技术前线,选择关注让一部分开发者看到未来作者:可可开发者技术前线原创随着阿里女员工被侵害事件的持续发酵,码农渐渐被大家知晓。自从网友们知道了互……十荟团大裁员,阿里买菜去往何处?图片来源视觉中国文丨20社,作者丨马程,编辑丨贾阳在同程生活、食享会破产,橙心优选大裁员后,社区团购的全行业整合还在继续。上周末,十荟团关停了全国21个城市圈……盘中宝发展新能源汽车重要细分赛道,行业盈利拐点有望提速,较目财联社资讯获悉,在全球碳中和背景下,充电基础设施建设尤其是发展公共充电桩,成为发展新能源汽车的重要细分赛道。近期,国家发展改革委、工业和信息化部发布《关于振作工业经济运行推动工……武汉这两家企业如何搭上华为5G顺风车未来5G生活令人憧憬。比如,你坐在无人驾驶汽车里,1秒下载一部1G高清电影,惬意地观看。不知不觉,行驶的汽车时而转弯,时而通过十字路口,将你安全送达目的地。但是,眼……过度收集个人信息?涉及淘宝饿了么昨天(14日),中国消费者协会发布《50款App账号注销及自动化推荐退订测评报告》显示:在是否可以顺利注销App账号方面,50款App中有20款App存在不同程度问题,占……Activity的几种启动模式一。先理解栈的概念(放置Activity实例的容器)1。Task(线性表)任务栈Task,用来放置Activity实例的容器,先进后出,主要有2个基本操作:压栈和出……中国动漫的前景如何?中国动漫在最近几年的发展大家有目共睹,优秀的动漫作品出现了很多,受到很多国人的追捧,动漫适应的人群也越来越广,让很多人不再认为动漫是小孩子看的东西,扩大了动漫市场。中国动漫的迅……中国软件(600536)麒麟操作系统业绩亮眼信创高景气度不改中国软件深入推进以麒麟软件为核心的自主软件产品、行业解决方案、服务化业务发展,信创景气度持续高升,公司作为国产操作系统的头部厂商,具有一定的稀缺性,业绩增长迎来新高峰,维持买入……巨头围猎大屏市场背后一场激光电视主导的时代更迭大戏〔钉科技述评〕电视大屏化趋势,有人看见,有人跟随,有人引领。近期,华为、小米、百度三大巨头的新品发布会,不约而同地布局75英寸以上大屏彩电市场,让这一趋势更加显性地彰显出来。巨……
新势力车企排名再次洗牌理想蝉联首位,蔚来跌出前三网上出4000元Q币,分5次充值后,买家就是欺负你是小白!农业农村部社会事业发展中心王宏新农人可利用短视频拓展联农带农三星S22最新爆料,比iPhone13更小的外观,3700毫董事长突然离职,中芯国际内部发生什么,为何一年流失600多人春节什么值得买?这三样家电让你摆脱清洁烦恼巴慕达4。9寸小屏手机停售发布才两个月从泰康模式看保险电商的突围之路对APP乱象说再见!官媒再次发声,绿厂保护隐私的做法值得借鉴新一代安卓旗舰芯片骁龙8Gen1VS天玑9000色差仪CE认证办理流程?色差仪CE认证费用2019年联通卡哪个套餐好?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利