Activity的启动模式

Activity 有四种启动模式

    在AndroidManifest.xml中给Activity进行配置,配置代码:

    android:launchModel=""

    四种模式:standard、singleTop、singleTask、singleInstance

    模式一

    standard模式,没有在AndroidManifest.xml文件中配置,或是配置为android:launchModel="standard"

    当启动一个Activity act的时候,不管Activity栈中是否已经有此act的实例,都会创建一个新的act的实例并置Activity栈的栈顶。

    模式二

    singleTop模式,在AndroidManifest.xml中配置为android:launchModel="singleTop"

    当启动一个Activity act的时候,如果Activity栈的栈顶是act的实例,那么系统将不创建新的act实例,而是沿用栈顶的act实例,并且会执行act中的onNewIntent方法

    如果Activity栈顶不是act的实例,则和standard模式处理方式一样。

    模式三

    singleTask模式,在AndroidManifest.xml中配置android:launchModel="singleTask"

    当启动一个Activity act的时候,如果Activity栈中,不管是栈顶还是栈的其它位置,只要含有act的实例,系统则不会创建新的act实例,而是把act实例提置栈顶,act实例之上的其他Activity实例被移除栈即销毁它们。并且会执行act的onNewIntent方法。

    如果Activity栈中不包含act实例,则和standard模式处理方式一样。

    模式四

    singleInstance模式,在AndroidManifest.xml中配置为android:launchModel="singleInstance"

    当启动一个Activity act的时候,系统先查询所有其他的Activity栈中是否包含act实例,如果包含则不创建,直接使用现有的act实例,并且调用onNewIntent方法。如果不存在,则会创建一个act实例,并且把新创建的act实例置一个新的栈中,新栈理论上只会有act这一个Activity。

       

转载于:https://my.oschina.net/qenter/blog/646766

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值