Android -- 启动模式

简介:

Android的启动模式分为四种:

  • standard

模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。

  • singleTop

如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。

  • singleTask

如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

  • singleInstance

在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。

standard                                                                                   

standard是系统默认的启动模式,每次创建都是在堆上放一个新的Activity。

这里就不多介绍了。

singleTop                                                                                

每次使用新的Activity时会自动检测栈顶的当前Activity是否是需要引用的Activity,如果是则直接引用此Activity,而不会创建新的Activity。

<activity
            android:name=".Activity2"
            android:label="singleTop"
            android:launchMode="singleTop" >
        </activity>

其效果是最顶层是singleTop的话,再点击singleTop按钮不会创建新的Activity。

image

singleTask                                                                               

此启动模式和singleTop在名字上即可看出区别,即singleTop每次只检测当前栈顶的Activity是否是我们需要请求创建的,而singleTask则会检测栈中全部的Activity对象,从上向下,如果检测到是我们所请求的则会消灭此Activity对象上面的对象,直接把检测到的我们需要的Activity置为栈顶。

<activity
            android:name=".Activity4"
            android:launchMode="singleTask"
            android:label="singleTask" >
        </activity

其效果是点击singleTask之后点击多个standard,再点singleTask,那些standard都没了。

image

singleInstance                                                                        

此启动模式和我们使用的浏览器工作原理类似,我们都知道在多个程序中访问浏览器时,如果当前浏览器没有打开,则打开浏览器,否则会在当前打开的浏览器中访问。此模式会节省大量的系统资源,因为他能保证要请求的Activity对象在当前的栈中只存在一个。

我是天王盖地虎的分割线                                                                

源码图:image

源代码:http://pan.baidu.com/s/1dD1Qx01

启动模式.zip

 

 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3802658.html,如需转载请自行联系原作者

相关文章
|
7月前
|
Shell Android开发 容器
你真了解Android任务栈 Task 与启动模式吗?
你真了解Android任务栈 Task 与启动模式吗?
62 0
|
Android开发
|
1月前
|
Android开发
Android的启动模式
Android的启动模式
13 0
|
8月前
|
Android开发
Android 中Activity的四种启动模式
Android 中Activity的四种启动模式
158 0
|
Android开发
Android活动的启动模式简单介绍
Android活动的启动模式简单介绍
|
XML Android开发 UED
Android APP启动黑屏及解决方案
相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。那么这个黑屏或者白屏到底是怎么一回事呢?
561 0
|
Java Android开发
android 线程只启动一次
android 线程只启动一次
116 0
android 线程只启动一次
|
Java Android开发
Android核心服务解析篇(三)——Android系统的启动(二)
Android核心服务解析篇(三)——Android系统的启动(二)
290 0
Android核心服务解析篇(三)——Android系统的启动(二)
|
Unix Linux Android开发
Android核心服务解析篇(三)——Android系统的启动(一)
Android核心服务解析篇(三)——Android系统的启动(一)
303 0
Android核心服务解析篇(三)——Android系统的启动(一)
|
Android开发
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)
216 1
深入剖析Android四大组件(二)——Service服务之启动与绑定(二)