博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity的启动模式 4种launchMode Intent.FLAG_NEW_TASK 详解
阅读量:6276 次
发布时间:2019-06-22

本文共 1280 字,大约阅读时间需要 4 分钟。

参考:http://blog.csdn.net/liuhe688/article/details/6754323

了解android开发的同学都知道 android开发 主要内容就是四大组件:Activity、 BroadCastReceiver、Service、ContentProvider 

而Activity又是重中之重  所以了解Activity的生命周期,启动模式等对我们来说是非常有必要的 。本文主要讲讲Activity的启动模式及其相关概念。

Activity的启动模式主要四种,standard、singletask、 singletop、 singleinstance 讲启动规模前,先引入一个概念Task,task 是一个栈结构的容器,

用来存放Activity实例,android启动每一个应用时,都会创建一个task然后将根Activity置于栈内,默认情况下,android应用的所以Activity实例都会处于同一个task内

当从一个Activity启动另一个Activity时,后者Activity会压入栈内,置于前者之上,依次类推,当用户按下back键时,当前的显示的Activity就会弹出栈,该Activity下面的

Activity实例便会置于栈顶,显示到屏幕前。接下来说说Activity的4种启动模式。

1.standard                      

Activity的默认启动模式就是standard,无需配置Activity的launchmode属性

默认设置standard启动模式的Activity,每次启动该Activity都会创建新的实例,不管task有没有已经存在的示例,都会创建新的Activity示例置于栈内。

2.singletask

当一个Activity的launchmode设为singletask,当我们start该Activity时,首先会在Activity栈中去查看是否有该Activity实例,如果有该实例则直接使用该实例,

切把该实例之上的所有Activity清除(出栈),如没有会创建一个新的实例出来。

 

3.singleTop

该启动模式和singletask有相似之处,当我们启动一个设为singleTop启动模式的Activity时,也会去Activity栈中查看是否有该Activity实例,不同之处在于,只会查看栈顶是否有该

实例,如果有,则直接使用该实例,如没有,则会创建新的实例出来

4.singleInstance

该启动规模比较特殊,如果将一个Activity的launchmode设为singleInstance后,当启动该Activity时,会创建一个新的活动栈,然后将该Activity放置于改活动栈中,且别的Activity

不会进入到该栈中,比如俩个应用程序共用一个Activity活动时,就可以将该Activity的launchmode设置为singleInstance。  

 

转载于:https://www.cnblogs.com/jux0506/p/4143371.html

你可能感兴趣的文章
Vue transition源码浅析
查看>>
如何提升团队的研发效率?来听听阿里研发专家是怎么说的
查看>>
Django-关于manage.py migrate无效的问题
查看>>
eclipse maven创建web工程2.0转3.0
查看>>
FTP 服务器上传文件 553 Could not create file
查看>>
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>