`

Activity四种启动模式(android:launchMode)

 
阅读更多

一、启动模式介绍

  启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;

  启动模式有4种,分别为standard、singleTop、singleTask、singleInstance

讲解启动模式之前,有必要先讲解一下“任务栈”的概念;

       每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity的出现顺序;比如Activity1-->Activity2-->Activity3。

二、启动模式

(1)standard:每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;

 
 

(2)singleTop:如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;


 

(3)singleTask:如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;


 

 

(4)singleInstance:singleInstance模式会将启动的Activity放置的不同的栈结构中。


 

 

我们看到从FirstActivity跳转到SecondActivity时,重新启用了一个新的栈结构,来放置SecondActivity实例,然后按下后退键,再次回到原始栈结构;图中下半部分显示的在SecondActivity中再次跳转到FirstActivity,这个时候系统会在原始栈结构中生成一个FirstActivity实例,然后回退两次,注意,并没有退出,而是回到了SecondActivity,为什么呢?是因为从SecondActivity跳转到FirstActivity的时候,我们的起点变成了SecondActivity实例所在的栈结构,这样一来,我们需要“回归”到这个栈结构。

 

  • 大小: 32.1 KB
  • 大小: 33.3 KB
  • 大小: 34.6 KB
  • 大小: 22.9 KB
2
2
分享到:
评论

相关推荐

    Android代码-Android 一些重要知识点解析整理

    Android Activity 的四种启动模式 管理Activity的生命周期 Android入门:Activity四种启动模式 Android Intent Android中Intent传递对象的两种方法(Serializable,Parcelable) 评论 29,85,96 序列化: ...

    android中的Activity启动方式

    Activity启动模式设置: <activity android:name=".MainActivity"android:launchMode="standard" /> Activity的四种启动模式: 1.standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 ...

    Activity 四种启动模式详细介绍

    Activity 四种启动模式详细介绍 ...Activity启动模式设置: <activity android:name=.MainActivity android:launchMode=standard> <activity android:name=.MainActivity android:launchMode

    Android编程中Activity的四种启动模式

    本文实例讲述了Android编程中Activity的四种启动模式。分享给大家供大家参考,具体如下: Activity启动方式有四种,分别是: standard singleTop singleTask singleInstance 可以根据实际的需求为Activity设置对应的...

    LaunchMode的使用

    Activity是Android最常用的组件之一,也是最直观的组件,Activity启动时有四种模式,分别是: “standard” "singleTop" "singleTask" "singleInstance" 其中"standard"是默认模式。

    android 退出app 退出应用程序

    2 设置入口activity的启动模式android:launchMode="singleTask",重写onNewIntent方法, 在退出activity时,设置intent.setAction("exit_app");然后跳转到栈底activity, 这样就可以清除栈底之外的所有activity,...

    Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)

    Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=””设置。 一、启动模式介绍  启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的...

    android Activity启动模式(launchMode)

    NULL 博文链接:https://kevindan.iteye.com/blog/1991346

    详解Android开发中Activity的四种launchMode

    Activity一共有以下四种launchMode: 1.standard:默认,每次使用Intent跳转到目标Activity时都创建一个新的实例。坏处是每次进入都要创建新的实例,执行OnCreate方法。 2.singleTop:如果要跳转的目标Activity...

    Android Activity LaunchMode例子

    这个文章《Android启动模式浅析》中用到的例子代码,希望需要的朋友可以去下载。

    Android中activity的启动模式

    activity的启动模式一共有四种:standard、singleTop、singleTask和singleInstance,可以在AndroidMannifest.xml中通过给<activity>标签指定android:launchMode属性来选择启动模式。 1.standard 是活动默认的启动...

    Android开发-Activity的生命周期及Intent

    目的: 1. 掌握activity组件生命周期函数的用法 2. 掌握使用intent实现activity之间的跳转 ...2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的 Activity 和 task 的关系

    Android安卓 Activity四种启动模式(launchMode) standard, singleTop, singleTask, singleInstance

    Android编程中经常涉及到页面的切换,启动一个新的页面(或者说Activity)的时候需要为其指定合适的“启动模式”。指定的启动模式不合适,会出现类似下面这种奇怪的效果: 你拿起QQ切换了一个新的账号,一直按返回却...

    Activity代理框架AyoActivityNoManifest.zip

    后期一个一个加2 ActivityAttacher的使用 (1) manifestmanifest里只需要声明:主Activity有特殊需求的Activity,如支持旋转模板Activity,暂时只支持一个启动模式对应一个模板Activity模板Activity有几个默认配置项...

    Android实验二:Activity的生命周期及Intent

    1、设计界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动...2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的Activity 和 task 的关系

    android基础总结篇之二:Activity的四种launchMode

    我们今天要讲的是Activity的四种launchMode。 launchMode在多个Activity跳转的过程中扮演着重要的角色,它...Activity一共有以下四种launchMode: 1.standard 2.singleTop 3.singleTask 4.singleInstance 我们可

    Android Activity启动模式全面解析

    在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 在Android应用中, Activity是最核心的组件, 如何生成一个Activity实例, 可以选择不同的...

    Android 启动模式详细介绍

     启动模式:LaunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。   这里简单介绍一下任务栈...

    onActivityResult使用与launchMode关系Demo

    之前遇到了onActivityResult提前调用的问题,说是和activity的启动模式有关,就做了一个Demo将四种启动方式都测试了一下,里面包括 onActivityResult的使用以及在四种不同启动模式下使用效果的不同情况

Global site tag (gtag.js) - Google Analytics