【自学笔记】活动的启动模式

来源:互联网 发布:js播放器进度条 编辑:程序博客网 时间:2024/06/05 05:55

活动启动的模式一共有4个,分别是standard,singleTop,singleTask和singleInstance。
我们需要在清单文件中修改launchMode属性来选择启动模式:
这里写图片描述

standard

standard是活动的默认启动模式,,每次启动一个活动,他都会在返回栈中存在,每次启动都会创建一个新的活动。

点击事件:

Intent intent=new Intent (First.this,First.class);startActivity(intent);

可以看到我们在点击事件中,重复创建First活动(3个First活动并不是完全相同的),我们连续点两下点击事件,这时候会如图效果:
这里写图片描述
总共有三个First活动,我们要退出程序,则需要按三次。

singleTop

在启动活动时发现栈顶就是该活动,则直接使用它不会再创建新活动,但是如果有以下这种情况,会有这种效果:
首先修改清单文件中的启动模式:

android:launMode="singleTop"

第一个活动的点击事件中修改:

Intent intent=new Intent(1.this,2.class);//注类名不可以是数字开头,这里偷懒了哈哈startActivity(intent);

第二个活动的点击事件中修改:

Intent intent=new Intent (2.this,1.class);startActivity(intent);

我们发现,我们在第二个活动中点击又创建了一个活动1
这里写图片描述
是的,活动1创建了活动2,活动2点击事件中又创建了一个新的活动1,那是因为当时栈顶是活动2,所以我们要退出程序时,同样要返回三次。

singleTask

每次启动该活动时,都会检查返回栈中是否存在,存在则直接使用。如果该存在的活动不在栈顶,则会移除该活动之上的所有活动。
首先修改启动模式:

android:launchMode="singleTask"

例如:活动1中启动活动2,活动2中启动活动1,会发生如图效果:
这里写图片描述

singleInstance

比较复杂,没明白有什么用= =!
活动中启动模式设置为singleInstance的活动,会单独创建一个返回栈。

//我们在活动2中设置为singleInstance

这里写图片描述
举例设置的点击事件:在1中设置跳转2,2中跳转至3.

咳咳,是这样的,1——启动2——2启动——3,当在活动3按返回键时,3会直接回到1,因为他们是在一个返回栈中,这时在1中按返回键,会直接跳至活动2的界面,因为返回栈A已经空了,这时候会跳至返回栈B,活动2按返回则退出程序。
萌萌哒。。。。哈哈

原创粉丝点击