位置: 编程技术 - 正文

对activity的四种启动模式的理解

编辑:rootadmin
1. standard 默认启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2. singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。3. singleTasksingleTask和下面的singleInstance 一样,都是全局唯一的,且 at the root of the new task。区别是singleInstance 栈中只能有它自己,它开启的activity,也要放在另一个栈里面(具体放在哪个栈里是由taskAffnity决定的,默认应该是原来那个应用程序所在的栈)而由singleTask开启的activity会放在singleTask所在的栈。 如果在栈中已经有该Activity的实例,就重用该实例(不会调用onCreate方法,会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。 (!注意:只在AndroidManifest.xml配置activity为singleTask是不会创建新的任务栈的,还必须配置taskAffinity属性为一个不同于整个应用程序taskAffinity的&#;,该activity才会新开一个任务栈;如没有配置taskAffinity属性,则虽然没有分配新的任务栈,但其他特性还是有的,如重新打开时会调用newIntent,且会清空上面所有的activity等)4. singleInstance 也需要和taskAffinity共用才能产生效果。在一个新栈中创建该Activity实例,并让多个应用共享该栈中的该Activity实例。一旦该模式的Activity的实例存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。系统不会让其他的activities运行在所有持有的task实例中,这个activity是独立的,并且task中的成员只有它,任何其他activities运行这个activity都将打开一个独立的task。

推荐整理分享对activity的四种启动模式的理解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

备注:

对activity的四种启动模式的理解

1、task是比进程更高级的一个逻辑概念,用户的一个task,有可能包括多个进程,(如:application中调用了支付宝支付功能,则会把支付宝支付模块添加到自己的task中执行,但支付宝支付模块却是一个独立的进程,跑在支付宝的进程下的);一个进程也可以存在于多个task中,通过adb shell dumpsys activity可以观察到。

2、singleTask和singleInstance回退时都遵守先把进入的栈一个个弹出后再进入另一个栈回退。所以,他们回退顺序有可能与用户的操作顺序不同(特别是singleInstance)

参考:

[android view]标签云原理、难点以及简单实现总结 标签云效果很酷,比如最出名的wordle,看看能否在andorid上实现,才发现并不容易,因为我是想做可视化而并不是为了分词,所以感觉难点在布局。这里

CloudEditText CloudEditText(EditText内容分不同块显示,支持校验,删除块,添加块,得到块代表的字符串集合)GitHub地址:

Android基础知识_Activity启动模式 一、启动模式介绍启动模式,简单地说就是Activity启动时的策略,在AndroidManifest.xml标签中的android:launchMode属性设置。Activity启动模式有4种,分别为standard

本文链接地址:https://www.jiuchutong.com/biancheng/382184.html 转载请保留说明!

上一篇:android 实现加载动画对话框(android 加载更多)

下一篇:[android view]标签云原理、难点以及简单实现总结(android 标签页)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络