Activity的启动模式与Flag

Activity四种加载模式

1.standard:标准模式,这也是系统的默认模式,每次启动activity都会创建一个新的实例。

2.singleTop:栈顶复用模式,如果新activity位于栈顶就不会被重建,同时它的onNewIntent方法会被回调。

3.singleTask:栈内复用模式,系统首先会寻找是否存在activity想要的任务栈,如果不存在就创建任务栈,然后创建activity的实例放到栈中,如果存在activity想要的任务栈,看栈中是否有activity的实例存在,如果存在就把activity调到栈顶,同时它的onNewIntent方法会被回调。,如果不存在就创建实例。

4.singleInstance:这是一种加强的singleTask模式,具有singleTask的所有特性,具有此种模式的activity只能单独的位于一个任务栈中,当activity启动后,系统会为它创建一个新的任务栈。


dumpsys命令

adb shell dumpsys activity

Intent的常用Flag参数

1.FLAG_ACTIVITY_CLEAR_TOP:一般会和“singleTask”启动模式一起出现,如果被启动的activity采用standard模式启动,那么它连同它之上的activity都要出栈,系统会创建新的activity实例并放入栈顶。

2.FLAG_ACTIVITY_NEW_TASK:同“singleTask”启动模式。

3.FLAG_ACTIVITY_NO_HISTORY:例如现在栈情况为:A B C。C通过intent跳转到D,这个intent添加FLAG_ACTIVITY_NO_HISTORY标志,则此时界面显示D的内容,但是它并不会压入栈中。如果按返回键,返回到C,栈的情况还是:A B C。如果此时D中又跳转到E,栈的情况变为:A B C E,此时按返回键会回到C,因为D根本就没有被压入栈中。

 4.FLAG_ACTIVITY_SINGLE_TOP:同“singleTop”启动模式。

5.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:不会出现在历史列表中,不希望通过历史列表返回activity时这个标记比较有用,等同于在XML中指定activity的属性 android:excludeFromRecents="true"


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值