Activity的lanuchMode属性的4中参数用法

本文详细介绍了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance。每种模式的特点及其应用场景都有详尽的说明。同时,还特别指出了在使用不同启动模式时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要参考文献http://blog.youkuaiyun.com/liuhe688/article/details/6754323 http://

http://blog.youkuaiyun.com/feng88724/article/details/6412638

http://blog.youkuaiyun.com/tiancizhenai/article/details/7037787

1:standard 表明activity的正启动,每次会重新生成一个新的activity。

2:singleTop 如果当前的activity处于activity栈的顶端,再次启动该activity则不会重新生成一个activtiy,如果这个Activity不在Activity栈的顶端,再次启动则会重新生成一个Activity并将其放到Activity栈的顶端。

3:singleTask 当启动当前的Activity时候发现Activtity栈中已经有该Activity的实例,则使在这个Activity之上的activity全部从栈中出栈,使此Activity至于栈的顶端,显示在界面中。

如果在栈顶,则接受intent,否则,该intent会被丢弃,但是该task仍会回到前台。

4:singleInstance  这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。

注意:(一)当选择后两种方式时 如果按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent 。只有调用startActivity(Intent i);时才会激活onNewIntent。(这种特性可以用来监听到Home键,哈哈)

(二)如果选择加载模式为singleInstance,则这时如果有用到TTS的话,在进行TTS检测时在onActivityResult中返回的结果会是TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL;而其他模式则不会出现这种情况。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值