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

Android 进阶2:Activity 的 Task 与启动模式

有时候我们要进行一些跨应用的操作,比如拍照、P 图、分享到朋友圈,这一系列操作中会有多个应用的 Activity 互相调用,系统是如何管理这些不同应用的 Activity 的呢?...2.singleTop:栈顶复用模式 如果位于栈顶则不会重复创建,不调用 onCreate onStart,直接调用 onNewIntent() 方法 ?...(intent); 下面是常见的三种与 Task 关联的标志位: FLAG_ACTIVITY_NEW_TASK singleTask 还是有一定区别的 如果 Activity 对应的 Task...FLAG_ACTIVITY_SINGLE_TOP,会销毁已有的,新建 Activity 如果是其他启动模式或者使用了 FLAG_ACTIVITY_SINGLE_TOP,就会直接调用已有的的 onNewIntent...(调用onNewIntent()) Thanks 开发艺术探索 https://developer.android.com/guide/components/tasks-and-back-stack.html

1.5K50

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

正常游戏都是只有一个activity(继承UnityPlayerActivity),但是SDK业务交互上需要特定场景会弹出一个或者多个新的activity在UnityPlayerActivity上,这个时候如果手机点击...image.png 目录下的AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?...尝试的在这个AndroidManifest.xml中给UnityPlayerActivity加上launchMode,然后重新unity打包apk,发现历史总是惊人的相似,结果还是不行 解决 发现上面的两个方法都不行...的launchMode,所以,其实unity的打包是只针对UnityPlayerActivity的,游戏主窗口才会设置成singleTask。...== null) { Intent intent = new Intent(this, MainPluginActivity.class); startActivity(intent

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

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法

通过 Android 组件:Activity 方法1:采用Activity启动模式:SingleTask 原理 将 App的入口 Activity 采用 SingleTask 启动模式...(intent); // 结束进程 // System.exit(0); } 优点 使用简单 & 方便 缺点 规定 App的入口Activity采用SingleTask...RxBus 使用 应用场景 需要与RxJava 结合使用时 若项目中没有用到RxJava & RxBus 不建议使用 至此,一键结束当前 App的所有 Activity的 方法 讲解完毕。...VM本地方法 作用 结束当前 Activity & 结束进程 即 在 (步骤1)结束当前 App 所有的 Activity 后,调用该方法即可一键退出 App(更多体现在结束进程上) 具体使用...下面我将继续对 Android中的知识进行深入讲解 ,有兴趣可以继续关注Carson_Ho的开发笔记 ---- 请帮顶 / 评论点赞!因为你的鼓励是我写作的最大动力!

1.8K42

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 的方法

具体介绍 通过 Android 组件:Activity 方法1:采用Activity启动模式:SingleTask 原理 a. 入口 Activity 此时处于栈底 b....使用简单 & 方便 缺点 规定 App的入口Activity采用SingleTask启动模式 使用范围局限:只能结束当前任务栈的Activity,若出现多任务栈(即采用SingleInstance启动模式...实现复杂:RxBus 本身的实现难度 & 需要在每个Activity注册取消订阅 RxBus 使用 应用场景 1....需要与RxJava 结合使用时 若项目中没有用到RxJava & RxBus 不建议使用 至此,一键结束当前 App的所有 Activity的 方法 讲解完毕。...下面我将继续对 Android中的知识进行深入讲解 ,有兴趣可以继续关注Carson_Ho的开发笔记

54020

Android程序员:“如何详解 Activity 的生命周期?”问完被怼了...

(四)launch mode Activity启动模式有4种:standard、singleTop、singleTasksingleInstance。...另外,对于一般App尽量少用singleTask singleInstance模式,可能会影响用户体验。...通过打log来验证,留给有兴趣的不妨试试,finish()方法onCreate,onStart,onResume等不同地方调用finish()后,Activity走的生命周期也是不同的。...image.png 除了上面的学习路线,还给大家整理了一份Android进阶学习资料,主要为相关知识点及面试资料为主,在这个PDF中,通过详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点...一些基础不好的,这里也有一份基础资料包,帮助巩固基础。 知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书笔记,这些笔记将各个知识点进行了完美的总结。

86200

singletask生命周期

1.singleTasksingletop都是保真了Activity在栈中的唯一性   2.singleTasksingleTop实例存在时,都不会重新创建 new task   不同之处有如下几点...在栈底时,在栈顶startActivity到这个ActivityB时会重新调动 onCreate->onStart->onResume,但不会调用OnDestroy   并且singletop启动的的...ActivityB不存在时,会重新创建ActivityB,调用方式OnCreate->OnStart->OnResume   3.singleTask在栈底时,从栈顶startActivity到栈底ActivityA...,   而且再次进入了HomeActivity,并且这个HomeActivity调用了OnNewIntent,却没掉用OnCreate,所以来说他一直存在这,但你需要再次过渡才能找到它。   ...注意,使用了不同作业栈的Activity,会在最近打开的app显示一个应用会出现2个界面。

35320

Android入门教程之Activity(生命周期,启动...)

因此,您不应使用 onPause() 来保存应用或用户数据、进行网络调用,或执行数据库事务。因为在该方法完成之前,此类工作可能无法完成。 已进入已停止状态,因此系统将调用 onStop() 回。...保存的 Bundle 对象参数同时传递给 onCreate 方法onRestoreInstanceState 方法。...补充:其中 onCreate onRestoreInstanceState 方法来恢复 Activity 的状态的区别: onRestoreInstanceState 方法则说明 bundle...singletask模式(栈内模式):当启动Activity时,只要该Activity在指定的栈中,就不会创建实例,去回onNewIntent(intent)**方法。...singleTask模式:当启动的Activity存在于任务栈中,会回onNewIntent方法。 13. 了解哪些Activity启动模式的标记位?

90300

任务栈?返回栈?启动模式?

关于 任务栈返回栈,我看了 N 篇博客,说的最清楚的除了 重学 ,那就非 官方文档 莫属了。其实大多时候,很多模糊不清的基本概念,从官方文档都可以轻松的得到你想要的答案。...singleTop: 栈顶复用模式 待启动 Activity 已经位于源 Activity 所属的任务栈的栈顶时,不会创建新的 Activity,而是直接使用栈顶的 Activity,并回它的 onNewIntent...方法onCreate onStart 不会被调用,直接回 onResume 。...如果想要的任务栈已经存在,并且其中已经运行着待启动的 Activity ,那么这个任务栈会被带到前台,并回 onNewIntent() 。这个行为 singleTask 一致。...这个异常是在 ContextImpl.startActivity() 方法中抛出的: @Override public void startActivity(Intent intent,

1K20

Android 精通活动「activity」四大启动模式

活动的四大启动模式 活动即「activity」对于 Android 应用来说,有着不可剥离的作用,对于初学者一般来说,都只是使用了默认(standard)模式,不管发生什么情况,只要需要活动跳转,就直接新建出一个活动...建立一个活动时如果之前没建立过,则调用 onCreate 建立 如果之前建立过,在栈内,则还是调用 onCreate() 建立 如果上一个活动就是你要建立这个类型的 Activity 则还是调用 OnCreate...() 打算进入一个活动 先检查活动栈的顶部是否是这个我活动的实例 如果不是 则 standard 一样,new 一个 如果是,则 复用 这个活动实例 在 Mainfest.xml 里添加: 实例:...日志输出: 可以看出 该活动只是被暂停,然后又调用了 onResume 激活,并没有调用 onCreate 建立新的  ---- singleTask singleTask 顾名思义,就是栈中只有一个该...通过路径也打开这个活动 这时 appB 就会把活动从 appA 中调到 appB 里去而不会新建一个 ActivitySingleInstance 活动 在 Mainfest.xml 里添加: 跳转方法

33520

【Android从零单排系列三十五】《Android四大组件——Activity》

启动关闭Activity:在程序中启动Activity可以通过Intent来实现,可以通过显式意图(指定目标Activity的类名)或隐式意图(指定匹配的Intent过滤条件)的方式进行启动。...可以使用各种UI组件布局管理器来构建界面。...使用startActivity()方法或startActivityForResult()方法启动目标Activity。 数据传递返回:通过Intent可以在不同的Activity之间传递数据。...六 activity启动方式 Activity可以通过多种方式进行启动,其中常见的包括: 显式启动: 通过指定目标Activity的类名启动,使用startActivity()方法或者更加灵活的Intent...SingleTask模式: Activity设置为SingleTask模式后,系统会为其创建一个新的任务栈,并且同一任务栈中只会存在一个该Activity实例。

19210

Android初级面试题之一

Android Activity的四种启动模式 Activity的四种启动模式想必入门开发一两年的都了解, · standard · singleTop · singleTask · singleInstance...如果系统中已经有一个 singleTask 的实例,那么再次启动时会重用它,并且调用它的 onNewIntent()方法。...如果不设置 taskAffinity属性的话,即使设置为 singleTask,也会在原有的栈中实例化 Activity 所以 singleTask需要配合 taskAffinity使用才有效果 singleInstance...任何时候启动 activity如果系统中已经有目标 activity,则调用它的 onNewIntent()方法。 多说一句 关于 singleTask还有个有趣的东西。...最后的结果,栈会变成只有 A->B这样子,而 C D会被弹出栈。这样满足了 singleTask的属性 既 single in task!

48360
领券