Activity启动模式 Task的概念:我们在打开手机应用时,点击右下方的方块或者通过全面屏手势,上滑+停住,可以查看最近使用的应用列表。我们会看到一块块的长方形块,就是一个个的Task。在桌面点击一个应用图标时,它的默认activity将被打开,就是配置了MAIN + LAUNCHER的intent-filter的activity。它在第一次启动的时候,系统会为它创建一个Task并将它放入该Task里面。我们在最近应用列表里切换应用,实际上是在多个Task之间切换。每个Task都有自己的回退栈,按照顺序记录打开的每个activity。在用户按返回键的时候(或者全面屏手势右滑),将按照倒序依次关闭这些Activity。直到当最后一个activity退出,Task的生命将结束。不过,即使Task销毁,它在最近任务列表里也不会消失。系统会保留它的一个残影,目的是让用户可以方面的进行切回。当然这种情况下的切回,实际上是activity的重新启动和Task的重建,原先的task已经不存在了。因此我们在最近应用列表里看到的App(实际是Task)未必是活着的。2、四种启动模式我们理解了Task的概念,再来详细看一下Activity的启动模式。首先我们需要知道的是Android的设计中Activity是组件。“组件”的意义,就是我们可以拿别人的组件来用,完成我们的功能,同时我们的组件也可以给别人来用。我们知道Activity是定义在App里,而“组件”的设计思想,又要Activity可以被“拿出去”使用。这也是Task存在的另一个意义:打破App的限制,以Task灵活的组装这些Activity,提高复用效率,实现丰富功能。当然每一个App都会创建自己的Task,多数情况下,App定义的Activity也都活动在自己的Task里。。我们说的LaucnhMode就是用来定义Activity启动时会进入Task的行为,不同的模式,会启动到不同的Task。2.1、Standard通常来说,从用户直觉上,从应用里打开一个Activity应当是和当前的App更加相关,而不是定义它的App。比如,我们从短信App里通过点击电话号码新建联系人,而打开了通讯录App的添加联系人Activity。那么我们直观认为添加联系人的逻辑应该是和短信更加相关。因为它就是从短信跳过来的,它们是在一个逻辑链条上。当我们按下返回键,希望看到的是跳转之前的短信App的界面。那么这里通讯录App的添加联系人Activity就是典型的Standard(默认)启动模式。这种模式就是被启动的Activity直接进入到当前Task的栈中,覆盖在栈顶的位置。在默认规则下,在不同Task打开相同Activity,这个Activity将会被创建多个实例,分别放进每一个Task中,互补干扰。Standard启动模式是Android

相关新闻

最新新闻

Puppeteer 中 BrowserContextEvents 类型化事件映射深度解析:Target 生命周期事件的订阅与底层实现

Puppeteer 中 BrowserContextEvents 类型化事件映射深度解析:Target 生命周期事件的订阅与底层实现

Puppeteer 中 BrowserContextEvents 类型化事件映射深度解析:Target 生命周期事件的订阅与底层实现 【免费下载链接】puppeteer JavaScript API for Chrome and Firefox 项目地址: https://gitcode.com/GitHub_Trending/puppeteer1/puppeteer 在 Puppeteer 中…

2026/9/7 18:38:58
C语言链表从零实现:结构体、指针操作与内存管理实战

C语言链表从零实现:结构体、指针操作与内存管理实战

链表这个东西,我在带新人或者看开源代码的时候,几乎每次都要拿出来讲一遍。你可以说它基础,但真要用好,里面门道不少。C语言里没有现成的容器,不像C有STL的list,Java有LinkedList,你想在C里用链…

2026/9/7 18:38:58
TimescaleDB高可用实践:Docker Compose部署PostgreSQL流复制集群

TimescaleDB高可用实践:Docker Compose部署PostgreSQL流复制集群

之前帮一个监控平台搭时序存储,单节点TimescaleDB跑得挺好,查询响应都在毫秒级。可当业务提出要加一套只读副本做实时看板、同时防止宿主机宕机导致数据不可用时,我就意识到不能再靠单库硬扛了。TimescaleDB虽然强在时序压缩和超表能力&#…

2026/9/7 18:38:58
3分钟把电子书变成有声书:ebook2audiobook免费完整教程(支持克隆自己的声音)

3分钟把电子书变成有声书:ebook2audiobook免费完整教程(支持克隆自己的声音)

3分钟把电子书变成有声书:ebook2audiobook免费完整教程(支持克隆自己的声音) 【免费下载链接】ebook2audiobook Generate audiobooks from e-books, voice cloning & 1158 languages! 项目地址: https://gitcode.com/GitHub_Trending/e…

2026/9/7 18:38:58
基于Python与Django的人事管理系统设计与实现全流程指南

基于Python与Django的人事管理系统设计与实现全流程指南

作为前几年一直在带毕业设计和实训项目的开发,我每年都会遇到一批选“人事管理系统”当课题的同学。说句实在话,人事管理系统是Java、Python、PHP毕设里出现频率最高的题目之一,最高的时候我带的组里有一半人选了这个方向。但正因为它常见&am…

2026/9/7 18:38:58
基于Matlab/Simulink的IEEE33节点配电网仿真与前推回代法潮流计算

基于Matlab/Simulink的IEEE33节点配电网仿真与前推回代法潮流计算

配电网仿真这事,绕不开IEEE33节点系统。只要搞过配电网研究或工程分析,应该都明白,这个经典算例几乎是国内高校和研究院所的标配。我自己在项目里也反复用过它做算法验证,前推回代法潮流、分布式电源接入分析、网架重构优化&#…

2026/9/7 18:33:57