您的位置:首页 > 其它

分分钟搞定LaunchMode

2015-06-02 11:07 253 查看
Android有四种Activity的LaunchMode分别为standard、singleTop、singleInstance、singleTask,大概的应用场景如下:

1、standard,默认的启动模式

2、singleTop,适用于从通知栏进入的界面,比如推送,使用singleTop启动的界面当当前activity位于栈顶的时候系统就不会调用onCreate方法新建activity,而是走栈顶activity的onNewIntent方法,自己也可以startActivity的时候从本activity跳转到本activity,看看走的是不是onNewIntent方法

3、singleTask方法,适用于程序的入口,比如浏览器的主页面,只启动主页面一次,其他调用onNewIntent方法。举个栗子:有三个界面,oneActivity、twoActivity、ThreeActivity,其中ThreeActivity的启动模式设置为singleTask,我们这么调转oneActivity----->twoActivity------->ThreeActivity------->oneActivity-------->twoActivity--------->ThreeActivity,你会发现,第二次调转到ThreeActivity的时候不会走ThreeActivity的oncreate方法,而是走onNewIntent方法,并且在新栈中位于第一个ThreeActivity上的oneActivity和twoActivity都会被销毁

4、singleInstance方法,适用于与程序分离的界面,比如闹钟,与singleTask类似,区别在于singleTask允许其他activity进驻到新栈中而singleInstance不允许其他activity进驻到新栈中,新栈中只允许有一个activity

PS:启动activity时还有个比较常用的FLAG是FLAG_ACTIVITY_CLEAR_TOP,这个会清除栈中位于这个activity上的其他activity,这个会重新走activity的onCreate方法,注意不要与singleTop混淆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: