文档章节

Activity的加载模式解读

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:21
字数 432
阅读 0
收藏 0
Android是用launchMode属性来定义activity的加载模式的,如在AndroidManifest里面写:
<activity android:name=".Activity2" android:launchMode="singleInstance">
加载模式一共四种,下面分别介绍:

standard:就是intent将发送给新的实例,所以每次跳转都会生成新的Activity。


singleTop:也是发送给新的实例,但不同于standard的一点是,请求的Activity正好位于栈顶时,不会构造新的实例。可以这样记:top single---如果在栈顶,就使用这一个。


singleTask:和后面的singleInstance都只创建一个实例,当intent到来,系统会检查栈里面是否已经有该Activity的实例,如果有直接将intent发送给它,并使此Activity实例之上的其他Activity实例统统出栈,没有的话才会新建。可以这样记:task single---如果栈里面有,就使用这一个。
需要说明的是:如果栈里面已经有Activity的实例了,当intent到来时,会在onStart()之前调用onNewIntent()方法。
Android中有一个属性android:taskAffinity,是用来给Application或Activity设置“任务共用性”的,默认是包名。如果为一个singleTask模式的Activity设置了该属性,如:android:taskAffinity="com.example.wdong.interviewtwo.aa"那么这个Activity跟该应用的其他Activity就不在同一个task(栈)了,可以使用this.getTaskId()打印出来看一下就清楚了。

singleInstance:将Activity放入一个栈中,并且这个栈中有且只有这一个Activity,不同应用的intent都由这个Activity接收和展示,实际就是不同应用共享同一个Activity,其实这种情况该Activity就相当于一个独立的应用了,不过这个应用仅有这一个Activity而已。

本文转载自:http://blog.csdn.net/wdong_love_cl/article/details/51510941

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
AndroidManifest.xml文件解读

一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,...

jz116
2012/12/15
0
0
安卓系列六(Activity的启动模式以及生命周期)

一、什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置...

火龙战士
2015/02/06
0
0
Activity的四种加载方式

配置activity时可指定android:launchMode属性,该属性用于配置改Activity的启动模式。该属性支持以下4个属性值。 standard:标准模式,默认的加载模式 singleTop:Task栈顶单例模式 singleTa...

dailei1021
2015/11/21
0
0
Android 四种加载方式详解(standard singleTop singleTask ...

Android 四种加载方式详解(standard singleTop singleTask singleInstance) 2012-02-03 14:05Android之四种加载方式 (http://marshal.easymorse.com/archives/2950 图片) 在多Activity开......

gavin_jin
2012/02/29
0
0
android翻译应用、地图轨迹、视频广告、React Native知乎日报、网络请求框架等源码

Android精选源码 android实现高德地图轨迹效果源码(http://www.apkbus.com/thread-601383-1-1.html) 使用React Native(Android和iOS)实现的 知乎日报效果源码(http://www.apkbus.com/thre...

逆鳞龙
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

AMD重回服务器:Oracle甲骨文宣布将使用AMD EPYC处理器

导读 AMD的EPYC的推出,让AMD重新有了在服务器级,数据中心级等大型政企领域的竞争机会。如今,很多云服务商开始使用EPYC处理器,Oracle也在近期宣布了将使用EPYC处理器的消息。 甲骨文也公布...

问题终结者
19分钟前
0
0
Maven 依赖范围(Dependency Scope)

Dependency Scope Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks. 依赖范围用于限制依赖项的传递性......

晨猫
35分钟前
1
0
细述hbase协处理器

1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(<0.92)Hbase中,统计数据表的...

微笑向暖wx
48分钟前
1
0
【实践】如何获得Rinkeby网络的测试以太币

当把智能合约部署到Rinkeby Test Network时,需要获得测试以太币。其网络获取测试以太币的方法同Ropsten Test Network有些不同,本文详细讲解一下。 1 访问网站 访问rinkeby网络(https://w...

HiBlock
今天
1
0
Logback中如何自定义灵活的日志过滤规则

当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现。在Logback中自带了两个过滤器实现:ch.qos.logback.classic.filter.LevelFilter...

程序猿DD
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部