码迷,mamicode.com
首页 > 其他好文 > 详细

分分钟搞定LaunchMode

时间:2015-06-02 12:53:43      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

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混淆

分分钟搞定LaunchMode

标签:

原文地址:http://www.cnblogs.com/gyzboy/p/4545885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!