Activity的四种launchMode

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。

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

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

原文地址:https://www.cnblogs.com/wlrhnh/p/3483251.html