我们都知道打开一个app后,我们点开了好几个界面后,就需要点击几次后退键,才能退出程序,这是为什么呢?答案是启动模式与任务栈。
activity有四种启动模式:standard、singleTop、singleTask、singleInstance。
1、standard启动模式(默认的启动模式)
这种模式的特点是,每次页面跳转都会生成一个新的页面并加入任务栈,点击返回键时,栈顶界面出栈并被销毁
上面三张截图是在默认启动模式下的截图,可以看出,一个app程序启动时就会分配一个任务栈,此栈栈ID为4,每次新打开一个界面时,都会创建不同的activity实例。
2、singleTop启动模式
这种模式的特点是,在页面跳转时会进行判断,如果目的页面在栈顶,就不会创建新的activity实例;如果不在栈顶,就创建新的activity实例,并入栈。
如下图,跳转页面为本身时,activity实例id是不变的
如果跳转到其他页面,再跳回来的话,id就会改变,即创建了新的activity实例
3、singleTask(栈内跳转)
这种启动模式的特点是只有一个任务栈,而且任务栈中的实例不重复,有则跳转,没有则创建并跳转。所有创建的实例都在一个任务栈中。
4、singleInstance(栈间跳转)
这种启动模式的特点是每个任务栈只有一个activity实例,也就是说,每次页面跳转,如果目的页面没有创建过,就会创建一个新的任务栈和一个新的activity实例;如果已经存在,就会到相应的任务栈中找到相应的activity实例。
控制启动模式的代码:
相关推荐
Android组件Activity四种启动模式的介绍与使用方法
activity四种启动模式,
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 本文档讲解Android中Activity的启动模式
这是有关Activity四种启动模式的示例代码,来源于网络并加上了一些个人的注释和总结。
# Android中Activity四种启动模式和taskAffinity属性详解 #
Android的Activity一共有4中启动模式分别是:standard、singleTop、singleTask、singleInstance。资源是该例子的项目,直接导入项目即可。
关于Activity的四种启动模式demon 博文地址:http://blog.csdn.net/sapce_fish/article/details/52672495
Activity 四种启动模式详细介绍 ...Activity启动模式设置: <activity android:name=.MainActivity android:launchMode=standard> <activity android:name=.MainActivity android:launchMode
android activity4种启动模式测试 一个演示启动模式的demo,结合博文,可以很方便的熟悉各种启动模式之间的差异。
Android中Activity的四种启动模式案例!
Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags()
Activity四种启动模式的验证代码,包括当前应用的相互启动,也包括多个应用间的交互。
Android Activity的四种启动模式及其应用场景 https://blog.csdn.net/qq_31939617/article/details/80696728
Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=””设置。 一、启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的...
activity的四种启动模式和onNewIntent的关系
Activity7大生命周期与4种启动模式(standard,singleTop,singleTask,singleIntance)