首页
学习
活动
专区
圈层
工具
发布

Activity四种launchMode

总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者在文章底部点下一篇。 1.Standard 默认模式,多次实例化,按序入栈出栈。...task,将这个Activity以上的Activity弹出,并且触发这个Activity的onNewIntent事件; (2)描述了不会新建task的情况,但是: 实验发现(2)的前提条件,有一点问题:...(1)“包含这个Activity的实例”不是必要条件: 如果没有一个task包含这个Activity的实例,但是,存在一个task包含与这个Activity属于同一个App的其他Activity的实例...(3)在包含这个Activity的task中,仅包含这个一个Activity,如果需要打开新的Activity,必须在其他task中打开,如果新建了task,task的根activity为新打开的这个Activity...总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者直接点下一篇。

63990

Activity启动模式(launchMode)详解

该模式的特点就是启动一个activity就会在栈中按先进后出的木桶原则创建一个activity。...这就是stanard模式每次启动都创建新的Activity. 1.2activity启动模式之singleTop 还是刚才的代码,我们启动模式改为 android:launchMode="singleTop...1.3 activity启动模式之singleTask 好了,我们现在将启动模式改为这个android:launchMode="singleTask",从welcomeActivity点击按钮跳转到MainActivity...这就是SingleTask启动模式的特点,如果Activity已经被创建,那么如果你再次跳转到此Activity,将不会创建新的Activity反而会把此Activity之后加入栈的Activity全部移除...我们可以利用这个启动模式的特点进行Activity栈中的移除工作。

75520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode

    的launchMode.一共有四种. 1.standard. 2.singleTop. 3.singleTask. 4.singleInstance.  ...所以带singleTop这种启动模式的Activity,只有这个Activity在栈顶的时候,在启动这个Activity才不会重新创建新的Activity.否则就和standard没什么区别。...并且当A不在栈顶的时候,再启动A的话,会直接销毁 栈中位于 A 上面的所有Activity实例。我们再新增launchMode为standard的B和C。...这种模式就是singleTask的加强模式。除了singleTask的所有特性之外。还规定了这种模式的Activity只能单独的位于一个任务栈中。  ...大家看完要是不明白可以看看这个,这里有篇文章http://blog.csdn.net/liuhe688/article/details/6754323,比较详细的介绍了Activity的launchMode

    34720

    你不该忽略的LaunchMode

    作为一个好的开发人员,不应该忽视掉Activity的启动方式launchMode。每次新建Activity时,内心都要问问自己这个界面启动场景是什么,它应该适应于哪种启动方式?...standard 如果不对新建的Activity不做任何修改,它在清单文件中默认的launchMode为standard 1activity  2    android:name=".MainActivity...大家都知道我们启动的Activity的保存在stack中,假设当前Activity堆栈为 D C B A 此时我为B添加launchMode="standard",并且在D中启动B,此时Activity...singleTop 1.还是之前的Activity堆栈 D C B A 现在我对C添加launchMode="singleTop",并在D中启动C,此时的Activity堆栈为 C (新的实例C) D...C添加launchMode="singleTask",并在D中启动C,此时Activity堆栈为 C (之前的实例C,新的intent数据可以通过onNewIntent获取) B A D会被从Activity

    62520

    掌握这10个Android LaunchMode问题,面试轻松搞定

    引言 Android LaunchMode是一个重要的概念,它定义了Activity的启动模式,决定了Activity在不同情况下如何启动。在面试中,LaunchMode相关的知识点经常被问到。...参考简答: LaunchMode概述:Android中的LaunchMode用于定义Activity的启动模式,通过在Manifest文件中配置,可以影响Activity的实例化和调用栈的管理。...LaunchMode运用 问题: 如何使用LaunchMode来实现单实例 Activity? 出发点: 面试官希望了解你对LaunchMode的实际运用能力。...singleInstance: 将Activity的LaunchMode设置为singleInstance,当该Activity启动时,它会创建一个新的任务栈,并成为该任务栈的根Activity。...参考简答: LaunchMode是一个 Activity 属性,它可以用来指定 Activity 的启动模式。

    67410

    【Activity】Activity的启动模式:SingleTask

    但是最近在写Demo测试这几种启动模式的特点与区别的时候,发现与官方文档有不一致的地方。本篇文章主要讲解的是SingleTask这种LaunchMode。...但是在写demo测试的时候,发现这个说法是不准确的。这句话成立的条件是,要启动的Activity的affinity是唯一的,即当前所有的任务中没有与该affinity相同的任务。...Demo中包含两个Activity,Activity的LaunchMode: MainActivity-Standard SecondActivity- SingleTask 步骤: 启动MainActivity...如果设置了“singleTask”启动模式的Activity不是在新的任务中启动的,它会在已有的任务中查看是否已经存在相应的Activity实例,如果存在,会调用该实例的onNewIntent,并且会把位于这个...Activity实例上面的Activit全部结束掉,最终这个Activity实例会位于任务的堆栈顶端。

    1.1K20

    Unity中Android 触发home,回收覆盖在UnityPlayerActivity上层的activity的问题

    分析 将打包的apk解析出AndroidManifest.xml发现,UnityPlayerActivity在AndroidManifest.xml中的launchMode是singleTask,发现问题了...天真的想法一: 一开始天真的我发现,修改一下项目的AndroidManifest.xml中的UnityPlayerActivity的launchMode就ok了。...的launchMode还是singleTask,没有变化。...后面,发现unityplayerActivity的launchMode是没有办法通过项目的修改 天真的想法二: 接上面的情况,我想应该是unity在打包默认模板配置死了,所以直接到unity的安装目录下去查找...> 代码中发现了个问题,于是我尝试了,把UnityPlayerActivity切换成其他的activity是不会打包成singleTask的launchMode,所以,其实unity的打包是只针对UnityPlayerActivity

    4.9K52

    我所理解的Android 启动模式

    activity android:name=".SingleTaskActivity" android:label="singleTask launchMode" android:launchMode...()方法中可以接收到上个页面的回传值,但你有可能遇到过拿不到返回值的情况,那有可能是因为Activity的LaunchMode设置为了singleTask。...两个Activity,A和B,现在由A页面跳转到B页面,看一下LaunchMode与StartActivityForResult之间的关系: ? before5.0.png ?...在5.0之前,当启动一个Activity时,系统将首先检查Activity的launchMode,如果为A页面设置为SingleInstance或者B页面设置为singleTask或者singleInstance...总结 实际开发过程中如果采用比较合理的Activity启动模式来做好任务栈的管理,可以事半功倍。在launchMode的选择上首先要搞清楚当前的Activity的作用,以及实际使用场景来做出合理选择。

    1.1K70

    Android面试官装逼失败之:Activity的启动模式总结

    简单基本launchmode 本文假定大家对于Activity的Task栈已经有初步了解,首先,看一下Activity常见的四种启动模式及大众理解,这也是面试时最长问的: standard:标准启动模式...Task栈,根据不同的组合会产生不同的效果,如果单独使用Intent.FLAG_ACTIVITY_CLEAR_TOP,并且没有设置特殊的launchmode,那么,Google官方的示例是:如果ABCD...Intent.FLAG_ACTIVITY_SINGLE_TOP多用来做辅助作用,跟launchmode中的singleTop作用一样,在Task栈顶有的话,就不新建,栈顶没有的话,就新建,这里的Task...--关键点2:预处理一些特殊的 launchmode,主要是设置Intent.FLAG_ACTIVITY_NEW_TASK--> // 如果sourceRecord ==null 说明不是从activity...--关键点5找到目标Task栈的栈顶元素 ,但是taskTop不一定是目标Activity--> ActivityRecord taskTop = r.launchMode

    1.8K40

    Android面试官装逼失败之:关于Activity的启动模式

    简单基本launchmode 本文假定大家对于Activity的Task栈已经有初步了解,首先,看一下Activity常见的四种启动模式及大众理解,这也是面试时最长问的: standard:标准启动模式...,并且没有设置特殊的launchmode,那么,Google官方的示例是:如果ABCD Task中的D采用Intent.FLAG_ACTIVITY_CLEAR_TOP唤起B,这个时候首先会将CD出栈,但是至于...多用来做辅助作用,跟launchmode中的singleTop作用一样,在Task栈顶有的话,就不新建,栈顶没有的话,就新建,这里的Task可能是目标栈,也可能是当前Task栈,配合FLAG_ACTIVITY_NEW_TASK...--关键点2:预处理一些特殊的 launchmode,主要是设置Intent.FLAG_ACTIVITY_NEW_TASK--> // 如果sourceRecord ==null 说明不是从activity...--关键点5找到目标Task栈的栈顶元素 ,但是taskTop不一定是目标Activity--> ActivityRecord taskTop = r.launchMode

    71820
    领券