Android activity的四种启动方式详解

来源:互联网 发布:c#高级编程第10版 编辑:程序博客网 时间:2024/06/06 18:08

activity的四种启动方式这个话题属于老的不能再老的话题那为啥今天还有在这说这个东西呢?今天查看资料发现了一些新的内容。
我们都知道activity有四种启动方式:
第一种:默认模式(standard)这种模式没有什么好说的,就是每次都会在activity栈当中新建一个activity实例,这种方式也是默认方式,但是在项目开发中这种方式用到的还真的不多。
第二种:singleTop,这种方式就是在如果目标activity没有在栈顶的话那么需要重新新建一个activity的实例,不管目标activity是不是已经在当前activity栈当中,举个例子:假如A跳往B,也就是说B是目标activity那么系统会先在A的栈当中检查这个B是不是在当前的栈的栈顶,如果没有则会新建一个activity实例,如果B在栈顶则不会新建activity。如果栈当中存在B但是没有在栈顶会怎么样呢?答案就是也会新建一个activity。比如:栈里面的顺序依次CBA,这是从A跳到B的话那么栈里面的activity就是CBAB。
第三种方式:singleTask,这种启动方式是singleTop的加强版,我们都知道singleTop的弊端是如果目标activity不在栈顶就新建实例,这种模式弥补了singleTop的缺陷,系统会自动的检查栈,如果有目标activity就不新建实例而是把栈里面的实例挪到栈顶。但是这种方式有“去它性”,举例:如果栈里面的activity的顺序是BADC,这是c需要跳到A那么跳转过后栈里面的顺序就是BA也就是说这种方式会把目标activity以上的所有activity全部移除
第四种方式:singleInstance:这种方式继承了全部singleTask的特点,另外他还有自己的新特性,假如一个activity被指定成为singleInstance那么它就会被放到一个新的activity栈当中
这就是activity的四种启动模式。
参考书籍:android开发艺术探索

0 0