展会信息港展会大全

Android下的Activity的四种启动模式
来源:互联网   发布日期:2016-01-14 10:40:00   浏览:1717次  

导读:一:Standard的启动模式匀琀愀渀搀愀爀搀是默认的模式每开始一个activity,就会在栈中加一个activity,相同的也会加,所以加多少个,就要按多少次返回键才能回到最初的界...

一:Standard的启动模式

Standard是默认的模式每开始一个activity,就会在栈中加一个activity,相同的也会加,

所以加多少个,就要按多少次返回键才能回到最初的界面

二:singleTop的启动模式

1.清单配置:

<activity

android:name="com.itcode.taskstack.SecondActivity"

android:label="@string/_second"

android:launchMode="singleTop">

</activity>

Singletop:如果任务栈的栈顶已经存在这个activity的实例,

不会创建新的activity,而是利用旧的activity实例

调用 旧的activity的onNewIntent()方法

2.作用:

避免一个糟糕的用户体验,如果这个界面已经被打开且在任务栈的栈顶,就不会重复开启了

三:Singletask的启动模式:

1.Androidfest配置:

<activity

android:name="com.itcode.taskstack.SecondActivity"

android:label="@string/_second"

android:launchMode="singleTask">

</activity>

2.作用:

singletask的启动模式:在任务栈里面只允许一个实例存在,假如02是singletask,

栈里是:01 02 01 03 若此时开启02,则会复用这个已经存在的activity,并且把当前activity上面其他的activity从任务栈里清空!

3.应用场景:

浏览器:底层使用的是webkit c 内核,初始化一次需要申请很多的内存资源,占用cpu时间

所以使用singletask,保证在任务栈里只会有一个实例存在

四:singleInstance的启动模式(相当于实例):

1.Androidfest的配置:

<activity

android:name="com.itcode.taskstack.SecondActivity"

android:label="@string/_second"

android:launchMode="singleInstance">

</activity>

2.特点:

singleInstance的启动模式更加极端,

开启新的activity,会给自己创建一个单独的任务栈

3.应用场景:

在整个手机操作系统里面只会有一个该activity的实例存在,

所以多个应用程序共享这个activity的实例,有线程安全问题!

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港