首页 > 学院 > 开发设计 > 正文

Activity的四种启动模式

2019-11-06 09:42:32
字体:
来源:转载
供稿:网友

Activity使用启动模式主要是为了让开发者避免创建多个重复的Activity实例,可以根据自己的需要来选择自己适合的启动模式。

设置Activity启动模式只需要在AndroidManifest.xml文件下对应的<activity>标签下配置,如下:

Activity的主要有四种启动模式:

1、standard:默认启动模式,不用做任何配置。在这种模式下,每次都会默认去创建一个模式,所以在这种模式下会产生多个重复的实例。

例如:A——>B——>C,%20C不停的转到C界面,实例也不停的创建,如下图:

按back一次返回(销毁),如下图:

使用这种模式会影响用户体验,不过也需要看情况而使用。

2、singleTop:独享任务栈顶 ,在创建一个新的Activity之前会先去查找任务栈,有没有个这个Activity实例,如果有就重用,没有就重新创建。在这种模式下,不允许有重复的实例。

例如:A—B—C三个实例,把C实例设置为singleTop模式,然后C 不停的跳转到C界面,代码如下:

(1)设置C为singleTop模式

(2)C界面跳转到C界面

(3)运行结果:

C界面只会创建一次,在singleTop模式下不允许有多个实例。

3、singleTask:独享任务栈,和singleTop模式有点类似,都会先去查找任务栈里面有没有要被创建的Activity实例,如果有就重用并且把其他的Activity实例销毁,只留自己一个。

例如:有三个实例A、B、C,我把A设置为singleTask模式

跳转过程是这样子的:A——B——C——A运行结果如下:

注意看到没,A(也就是第一个界面)只创建了一次,之后跳转A的时候并把B(第二个界面)、C(第三个界面)给销毁了。这个也就是singleTask模式,不允许重复实例,并且只能它自己独享一个栈。

4、singleInstance:单例,只有一个实例,不允许和其他Activity实例存在,只允许单独存在一个栈。

例如:有三个Activity实例A、B、C,它们三个之间可以互动,B为singleInstance模式,A启动B,B会另外新开一个Task,不会和A共用一个task,B再启动C,C会压在A纸上,不会和B共用一个task。这个的话得自己去实践了。不知道如果去描述。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表