2013-12-20 09:42:21

转载自: http://blog.csdn.net/liuhe688/article/details/6754323#

讲解launchMode思路最清晰的一篇文章。

写点自己的东西:

1. 一个应用按back退出,再次打开,此时getTaskId()也就是Task ID的值会变,:-),以前没注意;

2. 关于SingleTask, 再次声明一点, 会将对应的Activity之上的所有Activity实例统统出栈,将之变为栈顶对象;

3. 关于singleInstance, 由于会开启一个新栈,因此:

    从B应用中打开A中Activity(launchmode=singleInstance),按Home键退出, 打开A应用, 发现是同一个Activity,同一个Task ID。

    先从A中打开Activity(launchmode=singleInstance),按Home键退出,打开B应用,然后从B中打开A里面的Activity(launchmode=singleInstance),发现仍然是同一个Activity,同一个Task ID。

    ActivityA打开ActivityB,ActivityB使用SingleInstance,ActivityB打开ActivityC,发现ActivityA和ActivityC在同一个栈,ActivityB在另外一个栈;返回时,先从ActivityC到ActivityA,再按返回,才会到ActivityB。

测试代码下载,有兴趣的可以自己改改代码试试:

https://files.cnblogs.com/wlrhnh/4_lauchmode.zip

 posted on 2013-12-20 09:39  wlrhnh  阅读(421)  评论(1编辑  收藏  举报