首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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的文章,可以在我的博客中查看,或者直接点下一篇。

52790

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栈中的移除工作。

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

    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

    23720

    你不该忽略的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

    53820

    掌握这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 的启动模式。

    39310

    【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实例会位于任务的堆栈顶端。

    70420

    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.3K52

    我所理解的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的作用,以及实际使用场景来做出合理选择。

    83370

    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.6K40

    Android面试每日一题(3): LaunchMode 的应用场景?

    LaunchMode 有四种,分别为 Standard,SingleTop,SingleTask 和 SingleInstance,每种模式的实现原理一楼都做了较详细说明,下面说一下具体使用场景: Standard...: Standard 模式是系统默认的启动模式,一般我们 app 中大部分页面都是由该模式的页面构成的,比较常见的场景是:社交应用中,点击查看用户A信息->查看用户A粉丝->在粉丝中挑选查看用户B信息...->查看用户B粉丝… 这种情况下一般我们需要保留用户操作 Activity 栈的页面所有执行顺序。...A的视频页面,这样就不会过多干扰到用户先前的操作了。...这个经常使用于系统中的应用,比如Launch、锁屏键的应用等等,整个系统中仅仅有一个!所以在我们的应用中一般不会用到。

    65710

    activity详解_activity教程

    大家好,又见面了,我是你们的朋友全栈君。 前言 Activity可以获取运行中的应用信息,可以获取到servcie,process,app,memory,Task信息等。...) :为Activity创建新的任务栈,activity(需要创建任务栈的Activity),intent(用于跳转页面的Intent),description(描述信息),thumbnail(缩略图)...  我们需要定义一个自己的ActivityManager,并且在BaseActivity中的OnCreate方法里将启动的Activity通过我们自定义的ActivityManager把任务放入栈中,...()} 获取实例 * 成员变量 {@link #mActivityStack} 应该与系统的回退栈保持一致,所以在启动activity的时候必须在其onCreate中 * 将该activity加入栈顶,...= null && mActivityStack.isEmpty()) { mInstance = null; } } /** * 结束最接近栈顶的匹配类名的activity. * 遍历到的不一定是被结束的

    1.1K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券