Activity 四种启动模式

Activity 四种启动模式

设置activity启动模式,在AndroidManifest.xml
文件中activity标签里面设置android:launchMode属性,例如

        <activity
            android:name=".MainActivity"
            android:launchMode="standard">
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

1、standard 标准模式(默认)

每次跳转都会创建一个新的实例,存储在调用者activity的任务栈中,即同一个任务栈中。
日志文件

2、singleTop

这种模式类似与standard模式,但有一点不一样,仅当跳转的目标activity
处于栈的顶部时,此时不会创建新的实例,会复用栈的顶部activity实例,
即不会执行onCreate(),onStart()方法,会执行onResume(),onNewIntent()方法,
此时还是处于同一个任务栈中。
日志文件

3、singleTask

这种模式在跳转之前先去检查任务栈中是否有该实例,有就复用,没有就创建
实例,任务栈中最多只有一个该实例。解决了任务栈中共享同一个activity实例。

注意:如果任务栈中有该实例,则将该实例移动到栈的顶部,并且该实例前面的
其他实例对象则从栈中全部移除
日志文件

4、singleInstance

这种模式基本与singleTask一致,但是唯一不同点是,activity所在的任务栈有且
只有一个activity,如果涉及到其它activity,则将该activity移动到其它任务栈,
即:一个任务栈最多只有一个activity实例,activity实例在application中共享
同一个对象,使用之前先去检测是否有该实例对象,没有则新建,有就复用。

日志文件

总结:
日志文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值