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

Activity四种launchMode

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

52590

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

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

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

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

    23420

    你不该忽略LaunchMode

    作为一个好开发人员,不应该忽视掉Activity启动方式launchMode。每次新建Activity时,内心都要问问自己这个界面启动场景是什么,它应该适应于哪种启动方式?...standard 如果不对新建Activity不做任何修改,它在清单文件中默认launchMode为standard 1<activity  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

    53320

    ActivityActivity启动模式:SingleTask

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

    69220

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

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

    32810

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

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

    4.3K52

    Activity isFinishing()判断Activity状态实例

    查看源代码中注释: /** * Check to see whether this activity is in the process of finishing, * either because...() 调用研究 刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口方法,这种应用场景比较常见,最常见就是实现 onClickListener...接口,然后 findViewById().setOnClickListenr(this) 如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 时候(按返回键,回到桌面...有的 你可以在 onPause() 方法里面判断 isFinishing() ,正常调用 finish() 后 activity 回调过程是 onPause、onStop、onDestroy ,倘若出现上面的情况...以上这篇Activity isFinishing()判断Activity状态实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.1K20

    我所理解Android 启动模式

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

    82670

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

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

    1.5K40

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

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

    60910

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券