activity的四种启动模式
来源:互联网 发布:com域名注册局 编辑:程序博客网 时间:2024/06/06 21:00
activity的四种启动模式
在开始学习之前,我们必须知道一些事情
①:我们平常所说的 task stack(任务栈),是针对于activity而言的
②:任务栈其实就是一个后进先出的链表,记录和维护了当前开启的activity。
一般情况下,退出一个activity,就是把这个activity从任务栈栈顶移除.
③:如果栈顶空了,任务栈将会被回收,应用程序关闭,但,注意!! -- 进程其实还是存在的,等待其他任务进
入该线程.
【标准模式】 --- 一般情况
标准模式也是默认模式,在没有指定打开方式的时候默认使用标准模式
我们来做个程序实验一下,首先我们做两个activity
界面如下图:
在配置文件中配置启动模式
这时,我们点击的顺序为:第二个activity-->第一个activity-->第一个activity
此时在任务栈中的情况为
我们点击模拟器/真机的返回键,依次出现的界面依次为:
第一个activity(点击前)-->第一个activity(点击一次)-->第二个activity(第二次点击)
-->第一个activity(第三次点击)-->返回应用程序界面(第四次点击)
总结:每发送一个请求都会打开一个相应的activity,即使它已经重复,但依然要打开新的activity
【singleTop】 --- 特殊情况
singleTOP,这种模式和标准模式的区别在于:当你发起一个开启activity的请求时,它会第一时间去任务栈的最顶端查找,如果你要打开的是activity和顶栈中的activity一致时,它不会再次开启,值得注意的是,只要你请求打开的不是顶栈中的activity它都会开启一个新的activity,不管它之前是否打开过,是否存在
依然是上个案例中用到的例子,这次我们把启动模式设置为下图所示:
此时我们打开应用,点击Bution的顺序为
第二个activity --> 第一个activity --> 第一个activity
那么,在任务栈中的为:
当我们连续两次点击activity01时,它只会开启一个
我们点击模拟器/真机的返回键,依次出现的界面依次为:
第一个activity(点击前)-->第二个activity(第一次点击)
-->第一个activity(第二次点击)-->返回应用程序界面(第三次点击)
【singleTask】 --- 特殊情况
singleTask --- 它的作用是,当你发送一个启动activity A的请求时,它会先去任务栈中去查找是否存在你要开启的activity A,如果有,清空这个任务栈中activity A上面的所有的activity,复用activity A
现在我们把配置文件中的activity启动模式改为
我们发布项目,然后打开app,点击Button的顺序为:
第二个activity --> 第一个activity
那么此时在任务栈中的情况为:
所以我们点击一次后退键即可退出程序
【singleInstance】 --- 极特殊
singleInstance --- 它是一种及其特殊的启动方式,使用该启动模式的activity将会独自创建一个任务栈,这个任务栈中只存放一个该activity的实例,根据用户点击的顺序对所有的任务栈进行排序。
也就是说:如果activity01被开启,把activity01所在的任务栈放在最前面,如果此时又开启了新的activity02,那么activity02所在任务栈会被放置在activity01前面
我们来举个例子,现在我们把配置文件中activity的启动模式改为下图所示:
那么,我们将项目部署下,打开app --- > 进入activity01界面
点击进入第一个activity,我们发现页面并没有任何反应,而当我们点击进入第二个activity,此时应用的反应如同开启了一个新的app似的,很明显第一个activity的界面先是缩小,然后activity02出现。
此时的任务栈中的情形如图:
若我们再点击进入第一个activity,
也就是说,你想看到谁,谁就被放在前方,好似插队一般,把刚点击的activity放在队伍的最前方
不管点击几次Button我们只需要点击两次返回,即可关闭程序
以上就是我对activity4种启动模式的理解,希望可以帮到你
欢迎转载,请注明出处,谢谢
- Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式2
- Activity的四种启动模式
- activity的四种启动模式
- Activity启动的四种模式
- Activity的四种启动模式
- activity 的四种启动模式
- activity 的四种启动模式
- 分析Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式
- Activity 四种启动模式的区别
- Activity的四种启动模式
- activity 的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式(LaunchMode)
- HTML中input输入框禁止复制粘贴剪切自动完成
- linux内核panic
- 排序算法--直接插入排序
- (2017多校6)1002/hdu-6097 Mindis(计算几何)
- CodeForces
- activity的四种启动模式
- 做到这一点,你也可以成为优秀的程序员
- spring(基础20) threadLocal在spring框架中的运用
- Intellij license server JetBrains 授权服务器
- 二叉树的路径
- web前端-写给大家看的设计书-笔记-颜色运用-色轮使用
- MATLAB GUI的一些认识
- Java多线程实例之卖票
- CW3002F,CW3005,赛微一级代理,USB智能识别方案,现货,中文设计方案