Android——活动的启动模式

活动的启动模式分为:standard、singleTop、singleTask、singleInstance四种。

standard模式

是活动默认的启动模式,是在学习活动跳转时最先接触的模式。这个启动模式无视栈顶的活动,在实现Intent跳转后就会创建一个新的活动(即使是同一个活动)。例如:

Intent intent=new Intent(FirstActivity.this, FirstActivity.class);

startActivity(intent);

当你在FirstActivity点击触发跳转时,将会有一个新的FirstActivity被创建。持续点击触发跳转则会在返回栈中持续堆叠FirstActivity活动。

singleTop模式

修改上一个案例中的AndroidManifest.xml中FirstActivity的启动模式,添加:android:launchMode=”singleTop”。再次运行,你点击触发跳转时将会发现,FirstActivity活动不会再被创建,因为此时FirstActivity已经位于返回栈的栈顶。这就是singleTop启动模式的特点:当你想要启动的活动位于目前返回栈的顶部时,将不会重新创建新的活动,而是使用栈顶的活动,因此FirstActivity也只会有一个实例。不过如果你想启动的活动不位于目前返回栈的顶部的话,还是与standard模式相同,创建一个新的实例,所以这也是singletop的一个问题,singleTask的出现就可以解决这个问题。

singleTask模式

当活动的启动模式指定为singleTask时,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例。如果存在,则直接使用该实例。由于栈后进先出的特性,假如该活动的上面还存在其他实例,在使用该活动的时候会让该活动上的其他活动统统出栈。如果不存在,那么就创建一个新的活动实例。

singleInstance模式

singleInstance是这四种启动模式中最特殊也最复杂的一个模式。singleInstance适用于那些其他程序调用这个程序活动的情况。因为每个程序都有自己的返回栈,同一个活动在不同的返回栈中入栈事必然会创建新的实例,使用singleInstance模式就会有一个单独的返回栈来管理这个活动,无论哪个程序来使用,都会共用同一个返回栈,解决了多程序共享的问题。例如,目前有A、B、C三个活动,其中B活动的启动模式为singleInstance,A、C为默认的standard模式。活动的跳转流程为A->B->C。当你完成从A到C的跳转后,在C界面按下Back键,会发现C返回到了A,再点击Back键,A返回到了B。这就说明,A与C在同一个返回栈中,A入栈后,C进入同一个栈。而B进入了另一个栈。所以C返回到了A,然后在A界面点击Back时,因为此时A所在的栈已空,所以就显示另一个栈的栈顶——也就是B所在的栈,于是B显示出来。此时再点击Back键,所有实例都出栈,程序也就自然退出了。

原文地址:https://www.cnblogs.com/slzj/p/9446013.html

时间: 2024-08-26 13:35:24

Android——活动的启动模式的相关文章

[Android]活动的启动模式

启动模式一共有四种,分别是 standard.singleTop.singleTask 和 singleInstance , 可 以 在 AndroidManifest.xml 中 通 过 给 标 签 指 定android:launchMode 属性来选择启动模式.在实际项目中我们应该根据特定的需求为每个活动指定恰当的启动模式. 1. standard standard 是活动默认的启动模式,在不进行显式指定的情况下,所有活动都会自动使用这种启动模式.因此,到目前为止我们写过的所有活动都是使用的

Android活动的启动模式

1. standard 标准模式,是活动默认的启动模式,在不进行显示指定的情况下,所有活动都会自动使用这种模式. Android使用返回栈管理活动,在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处在栈顶位置. 例如: 1 public class FirstActivity extends AppCompatActivity { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 su

(Android第一行代码)活动的启动模式

活动的启动模式 启动模式一共有四种,分别是 standard.singleTop. singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给<activity>标签指定 android:launchMode属性来选择启动模式.下面我们来逐个进行学习. 1.standard模式:(对于使用 standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建 该活动的一个新的实例.)   是活动默认的启动模式  修改

android中活动的启动模式

活动的启动模式 1.standard 2.singleTop 3.singleTask 4.singleInstance standard为默认的活动启动模式(无论活动是否在栈顶,都会创建一个新的活动) sing了Top(如何栈顶有了新的活动就不会创建新的活动,会直接使用已经存在的活动) singleTask(可以解决重复创建栈顶活动的问题,创建新的活动之前会检查是否活动已经存在,若存在就把该活动之前的活动全部清出栈,将该活动显示在栈顶,否则就创建一个新的活动) singleInstance(该

Android笔记(八)活动的启动模式

1.启动模式一共有四种,分别是standard.singleTop.singleTask 和 singleInstance,可以在AndroidManifest.xml中通过给activity标签指定android:launchMode 属性来选择启动模式. 2.standard standard 是活动默认的启动模式,在不进行显式指定的情况下,所有活动都会自动使用 这种启动模式.在 standard 模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置.对于使用standard

活动的生命周期(五)活动的启动模式

活动的启动模式对我们来说是个新的概念,在实际项目中我们会根据活动的需求为每个活动指定恰当的启动模式.共分为四种分别是:standard,singletop,singletast,singleinstance,可以在androidMainfest.xml中进得指定,android:launchModel属性来选择启动查式. Standard(标准):从字面就可能看得出这个是标新准的启动模式,在不进行显示指定的情况下,都是这种模式.在这个模式下每当启动一个新的活动时,它就会压入栈的顶部,而不去管这个

Android activity的启动模式

自己的理解加上网上的一些资料总结了关于activity的四种启动模式 在实际项目中我们应该根据特定的需求 为每个活动指定恰当的启动模式.启动模式一共有四种,分别是 standard.singleTop. singleTask 和 singleInstance,可 以在 AndroidManifest.xml 中通 过给<activity>标签 指定 android:launchMode属性来选择启动模式. 1,standard(这是活动的一个标准模式,在创建活动的时候默认是这个模式) 在 st

活动的启动模式汇总

启动模式一共有四种,分别是 standard.singleTop. singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给<activity>标签指定 android:launchMode属性来选择启动模式,如 android:launchMode="standart" android:launchMode="singleTop" android:launchMode="singleTa

安卓 活动的启动模式

活动的启动模式:1.standard 2.singleTop 3.singleTask 4.singleInstance-------可在 AndroidManifest 中通过给<activity>标签指定android:launchMode属性来选择启动模式 standard     (1)默认的启动模式 每此启动都会创建该活动的一个新的实例 返回栈中可存在3个相同的activity,所以  按三次back才可退出     返回栈中可是     A    A    A singleTop