Adnroid activity启动模式

本文详细介绍了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance,以及它们各自的行为特点。例如,standard模式每次启动都会创建新实例,而singleTop模式则仅在栈顶时复用。此外,还提到了TaskAffinity属性的配合使用,以及如何通过XML配置和Intent标志来设置启动模式。
摘要由CSDN通过智能技术生成

1、standard模式

standard模式为activity默认模式,在此模式下,每次启动该activity都会入栈,多次启动会在栈内创建多个该activity,点击back键会依次出栈。

2、singleTop模式

第一种方式看起来有点傻,所以Android又为activity提供了singleTop模式,当activity被指定了此模式后,如果该activity位于栈内顶端每次启动该activity不会重新入栈,就不会出现栈内创建多个该activity的情况,但如果该activity不处在栈内顶端,当再次启动该activity时,仍然会重新入栈。

3、singleTask模式

第二种方式无法解决activity不在栈顶端时activity重复入栈的情况,所以Android又为activity提供了singleTask模式,当栈内有此模式下的activity时,再次启动该activity不会创建新的activity,而是直接将之前已经存在的activity置于栈顶,但要注意的是如果该activity上面有其他activity时,这些activity会被统统出栈。

4、singleInstance模式

singleInstance可以理解为singleTask的加强版,它具备singleTask的所有特性,在此模式下的activity在启动时会被放置在一个单独的任务栈中。

5、其它

5.1 activity启动模式使用

可以在xml配置文件中指定或者在intent启动时指定启动模式

 <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.Fullscreen.Translucent" />
Intent intent =new Intent(CaseSetActivity.this,CaseActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);

5.2 TaskAffinity属性

singleTask模式可以与TaskAffinity配合使用,指定这两种属性的activity会运行在TaskAffinity指定的任务栈中并具备singleTask特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值