Activity的四种启动方式(Intent标志位)

Activity的启动方式分别是:standard,singleTop,singleTask,singleInstance

如果需要修改Activity的启动方式,需要在AndroidManifest中配置Activity的 android:launchMode属性


Activity的默认启动方式是standard,这种启动方式启动Activity时,每启动一个Activity都会创建一个Activity的实例

singleTop是如果启动Activity时,如果该Activity在栈顶的话,就复用该Activity。但是如果该Activity不在栈顶,还是会启动一个新的该Activity实例。

singleTask是不管该Activity在不在栈顶,只要有该Activity存在,就将其他Activity推出栈,然后将这个Activity置顶,复用这个Activity

singleInstance 这个启动方式是将使用这种启动方式的Activity放入另外一个任务栈中,与其他Activity不在一个栈中。

例如A启动 B ,B是使用singleInstance启动方式的,然后B启动C,C点击返回时会直接返回到A,而不会返回到B


Intent标志位

    intent.setFlags(XXXXX);

    1、Intent.FLAG_ACTIVITY_SINGLE_TOP

        跟加载模式中singleTop栈顶单实例类似

    2、Intent.FLAG_ACTIVITY_CLEAR_TOP

        跟加载模式中singleTask区别:

            如果activity已经存在,并处于栈中,会把目标Activity 之上的所有Activity都销毁(包括自身),重新创建一个新的Activity

    3、Intent.FLAG_ACTIVITY_NEW_TASK

        如果在service中跳转Activity,必须去设置意图标志位

            Intent.FLAG_ACTIVITY_NEW_TASK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值