欢迎来到天天文库
浏览记录
ID:30775336
大小:157.59 KB
页数:14页
时间:2019-01-03
《activity四种启动模式总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Android启动模式总结启动模式:LaunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下任务栈task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的tasko任务栈里面的Activity是按照先进后出的形式保存的,比如:你打开一个页面,在页面中打开另一个页面,另一个页面退出后,返回的是第一个打开的页面,这就是任务栈的简单原来。但是在实际程
2、序中多次页面跳转后,不想再回到上次打开的页面,这时候页面显示的启动模式就很有必要了。Activity一共有以下四种launchMode启动模式:1.standard2.singleTop3.singleTask4.singlelnstance我们可以在AndroidManifest.xml配置的android:launchMode属性为以上四种之一即可。如图所示:activityandxoid:na*e".Mam
3、/>SingleTopactivityandroidznaae^.SingleTask/android:launchMode=smelt/>jSingleTask^4、底下的,然后后面打开的页面一次往上堆。只有最底下的页面关闭,程序才算完成关闭。一.四种启动模式的概念和理解(一)standard标准模式,是默认的启动模式,不用为配置android:launchMode属性即可,当然也可以指定值为standardo每次启动standard模式的Activity时,都创建Activity实例,并放入任务栈;简单的理解:如果几个页面都是standard模式启动的,那么页面无论是跳转到别的页面还是自己跳转到自己页面,跳转多少次后,就要点击多少次退出键最后才能关闭所有的。(Zl)SingleTop栈顶单例模式,指定属性andro5、id:launchMode="singleTop",系统就会按照singleTop启动模式处理跳转行为。这个在实际中并不常用。如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,只需复用自己已有的Activity示例即可。但是如果自己不是栈顶的话,还是会创建自己的示例的。简单的理解:如果页面的启动类型是SingleTop类型的,它点击跳转到自己的页面,只需要点击一次退出就退出程序了。因为当它处于栈顶时,它无论点击多少次跳转到自己,都自有一个Activity实例,点击一次退出就会退出程序。和Standard模式对比的话,Standard模式6、下点击多少次自己就要退出多少次后才能退出程序。(三)SingleTask内单例模式,指定属性android:launchMode=,,singleleTask,/,这是应用中比较常用到的模式。也是我们要重点理解的模式。如果要启动的那个SingleTask模式的Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都移出栈里面;如果不存在该模式的Activity就创建给模式的Activity放在该栈顶。也就是说:一个栈里面只能有一个SingleTask模式的Activityo上面几句重点理解一下7、:如果SingleTask模式的Activity已经存在栈顶,那么再次跳转到自己页面,它是不会创建自己的Activity实例对象的,这个和SingleTop是一样的。但是如果SingleTask模式的Activity已经不在栈顶,那么再次跳转到自己页面,它是不会创建自己的Activity实例对象的,也会直接跳转到自己的实例Activity,并且把压在该模式之上的所有Activity实例都移除栈,但是该模式底下的Activity实例它是没有办法移除的。如果SingleTask模式的Activity都还没有创建,那么它
4、底下的,然后后面打开的页面一次往上堆。只有最底下的页面关闭,程序才算完成关闭。一.四种启动模式的概念和理解(一)standard标准模式,是默认的启动模式,不用为配置android:launchMode属性即可,当然也可以指定值为standardo每次启动standard模式的Activity时,都创建Activity实例,并放入任务栈;简单的理解:如果几个页面都是standard模式启动的,那么页面无论是跳转到别的页面还是自己跳转到自己页面,跳转多少次后,就要点击多少次退出键最后才能关闭所有的。(Zl)SingleTop栈顶单例模式,指定属性andro
5、id:launchMode="singleTop",系统就会按照singleTop启动模式处理跳转行为。这个在实际中并不常用。如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,只需复用自己已有的Activity示例即可。但是如果自己不是栈顶的话,还是会创建自己的示例的。简单的理解:如果页面的启动类型是SingleTop类型的,它点击跳转到自己的页面,只需要点击一次退出就退出程序了。因为当它处于栈顶时,它无论点击多少次跳转到自己,都自有一个Activity实例,点击一次退出就会退出程序。和Standard模式对比的话,Standard模式
6、下点击多少次自己就要退出多少次后才能退出程序。(三)SingleTask内单例模式,指定属性android:launchMode=,,singleleTask,/,这是应用中比较常用到的模式。也是我们要重点理解的模式。如果要启动的那个SingleTask模式的Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都移出栈里面;如果不存在该模式的Activity就创建给模式的Activity放在该栈顶。也就是说:一个栈里面只能有一个SingleTask模式的Activityo上面几句重点理解一下
7、:如果SingleTask模式的Activity已经存在栈顶,那么再次跳转到自己页面,它是不会创建自己的Activity实例对象的,这个和SingleTop是一样的。但是如果SingleTask模式的Activity已经不在栈顶,那么再次跳转到自己页面,它是不会创建自己的Activity实例对象的,也会直接跳转到自己的实例Activity,并且把压在该模式之上的所有Activity实例都移除栈,但是该模式底下的Activity实例它是没有办法移除的。如果SingleTask模式的Activity都还没有创建,那么它
此文档下载收益归作者所有