Android activity 四大启动模式

Android Activity’s Four LaunchMode

1、standard

  standard模式是默认的模式,可以不用再manifest文件里面声明。这种模式在应用中比较常见,当我们启动一个standard模式的activity时,系统会将新的activity压入启动它的activity所在的栈里面,当我们按回退键时在栈顶的activity就会出栈。实际上就是一般入栈出栈操作。

  • 启动
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    到这里再开始点击回退键
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    再点一次就回到了主界面
    在这里插入图片描述

2、singleTop

  栈顶复用能够避免同一个activity在栈顶重复出现,在一个程度上节约了内存控件,举一个例子,当我们重通知栏里面点击一个信息,启动一个activity,如果这个activity刚好在该栈的栈顶,那么就可以复用这个activity,而不是又重新启动一个一样的activity。
在这里插入图片描述
进入在singleTop模式的activity
在这里插入图片描述
这里我们再点击“跳转自己”,会发现并不会出现什么情况,但是实际上他会执行如下回调方法

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
    }

当我们点击第二个按钮时,进入第五个activity,这个activity时standard模式,再点击当前页面按钮。
在这里插入图片描述
这时会回到第五个activity,此时栈内是有两个FourActivity,即两个singleTop模式的activity。(不想截图了-_-)
在这里插入图片描述
所以,singleTop模式只有再栈顶的时候才不会被覆盖,如果不在栈顶就可以被覆盖,正如它的名字一样,栈顶复用。

3、singleTask

  栈内复用就是只要该activity再栈里面,就不会出现与之相同的activity,原因是当你启动相同的activity时,它会去复用之前的activity。并且将在被复用activity上面的所有activity出栈。这种模式多用在mainActivity。
在这里插入图片描述
在这里插入图片描述
点击跳转到MainActivity
在这里插入图片描述
在这里插入图片描述
这时再点击返回按钮,会直接回到桌面。说明此时MainActivity就在栈顶,并且栈内再没有其他的activity了。
在这里插入图片描述
在这里插入图片描述

4、单例模式

  作为栈内复用模式(singleTask)的加强版,打开该Activity时,直接创建一个新的任务栈,并创建该Activity实例放入新栈中。一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例。点击第四个按钮。
在这里插入图片描述
在这里插入图片描述
此时我们可以看到出现两个任务栈。这里注意在manifest文件里对应的activity标签里添加android:taskAffinity=“instance.test”,不然不会出现两个任务栈。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值