天天看点

android之launchMode相关内容

原来感觉总是对android中的启动模式理解的程度有限。这两天蹭有空,就花了一些总结一下。我主要参考了如下资料:

关于launchMode方面的:http://blog.csdn.net/liuhe688/article/details/6754323/

关于launchMode与flag方面的:http://www.360doc.com/content/14/0925/13/9200790_412234173.shtml

关于taskAffinity方面的:http://blog.csdn.net/way_ping_li/article/details/8680359

感谢以上作者的付出。

我就总结一下我的一些理解:

1. 应用和任务栈的关系,为1对N。换句话说是一个应用至少又一个任务栈。

2. 在android手机中长按home键,显示出来的内容为任务栈。

3. 在android手机中按下返回键,总是从当前的任务栈弹出栈顶的元素,再次按下返回键,依然从当前的任务栈返回,只有当前的任务栈为空时,才会替换到当前应用其他的任务栈中。

4. taskAffinity是用来寻找task的。如果不设置,默认值等于当前的包名。比如,在当前的界面启动另一个activity,设置的flag为FLAG_ACTIVITY_NEW_TASK,这时就会根据activity的taskAffinity所表示的task,如果找到了,就是用这个task,如果没有找到就创建一个新task。

5. 启动模式中不管singleTask、singleInstance,taskAffinity都是用来寻找task。比如,如果是singleinstance的话,根据taskAffinity寻找task,如果找了,会先清空task,被启动activity独占一个task。

6. 在一定程度上flag也能起到launchMode的作用。一般可理解为修改启动模式有两种吧。

继续阅读