`
xym_love
  • 浏览: 113676 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android中的Activity四种启动模式(launchMode)

阅读更多

我 们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转,或者夹带其它应用的可复用的Activity。例如我们可能希望跳转到原来 某个Activity实例,而不是产生大量重复的 Activity。这样就需要我们为 Activity 配置特定的加载模式,而不是使用默认的加载模式。

Activity 有四种加载模式

[1] standard 模式

     这是默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈中。


[2] singleTop 模式

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


[3] singleTask 模式

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


[4] singleInstance 模式

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


设置启动模式的位置在 Android Manifest.xml 文件中 Activity 元素的 android :launchMode 属性

分享到:
评论

相关推荐

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

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

    android Activity启动模式(launchMode)

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

    android中的Activity启动方式

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

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

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

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

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

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

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

    详解Android开发中Activity的四种launchMode

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

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

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

    Activity 四种启动模式详细介绍

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

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

    我们今天要讲的是Activity的四种launchMode。 launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里...

    Android Activity LaunchMode例子

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

    Android中activity的启动模式

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

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

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

    Android Activity启动模式全面解析

    在Android应用中, Activity是最核心的组件, 如何生成一个Activity实例, 可以选择不同的启动模式, 即LaunchMode. 启动模式主要包括: standard, singleTop, singleTask, singleInstance. 标准模式在每次启动时, 都会...

    onActivityResult使用与launchMode关系Demo

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

    LaunchMode的使用

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

    Android 启动模式详细介绍

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

    android 退出app 退出应用程序

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

    活动的启动模式

    主要是针对android中的四大组件的活动的启动模式进行了一个较为细致的展示

Global site tag (gtag.js) - Google Analytics