【Android 应用开发】Android 返回堆栈 与 任务

简介: 【Android 应用开发】Android 返回堆栈 与 任务

文章目录

I . 返回堆栈 概念

II . 返回堆栈 运行机制

III . 任务



I . 返回堆栈 概念


返回堆栈概念 :


① 任务 : Android 中的任务就是 Android 应用 与 用户进行交互的 Activity 界面集合 ;


② 返回堆栈 : 将 Activity 界面依次放入 一个 堆栈 数据结构中 , 这个堆栈就是 返回堆栈 ;


③ 作用 : 返回堆栈的作用是 管理 Android 不同层级界面的打开关闭顺序 ;



注意 : 任务是多个 Activity , 不是一个 ;




II . 返回堆栈 运行机制


返回堆栈 运行机制 :


① 根 Activity : 用户在 Launcher 应用中 , 即主屏幕界面 , 没有打开任何应用 ; 此时点击应用图标 , 启动应用 , 如果该应用没有被打开过 , 系统就会创建一个新的 返回堆栈 , 这个应用的 Main Activity 就会作为该 返回堆栈的 根 Activity , 放在堆栈的最底部 ;


② 入栈 和 出栈 : 返回堆栈 只有入栈 和 出栈 两个操作 , 入栈 很容易理解 , 就是打开一个界面 , 堆栈的管理主要是对出栈进行管理 , 出栈可以退出 一个 或 多个 , 不同的操作和配置 会弹出数量不等的 Activity , 这是 返回堆栈 管理的核心 ;


返回堆栈 , 不会有排序行为 , 只有 入栈 和 出栈 两种操作 ;


③ 入栈原理 : 在 Activity 1 中启动 Activity 2 , 后者就会入栈 , 放到返回堆栈的栈顶 , 之前的 Activity 1 仍然会滞留在 返回堆栈 中 , 状态处于 “已停止” 状态 ; 下图是 连续 启动 3 个 Activity 后的返回堆栈 示例图 :

image.png



④ 出栈原理 : 用户按下返回键时 , 返回堆栈 栈顶的元素就会被 弹出堆栈 , 该 Activity 会被销毁 , 上一个 Activity 会恢复 ; 下图是在上面入栈的基础上 , 按下返回键 , 将 Activity 3 弹出了返回堆栈 ;

image.png



⑤ 全部出栈 : 如果用户连续按返回键 , 直到回到主界面 , 此时该应用的所有 Activity 都退出了 , 任务随着 返回堆栈 的退栈清空 而 销毁 ;




III . 任务


1 . 任务简介 :


① 任务本质 : 任务是 Activity 界面集合 ;


② 后台任务 : 用户打开新的应用 , 或 按下了 Home 键 , 会导致原来的 任务 转变成 “后台任务” ;


③ 后台任务 返回堆栈 : 任务进入后台 , 其 返回堆栈不会改变 , 堆栈中的 Activity 全部进入 “已停止” 状态 ;


④ 后台任务 转为 前台 : 当用户按下 Home 键 进入主界面 , 点击菜单键 , 选择原来的应用 ( 不同手机操作不同 ) , 该后台任务就会转为前台任务 , 其返回堆栈中的 Activity 会保持进入后台的状态 ;


注意 : 后台任务中的 Activity , 可能会因为内存紧张被销毁 ;



2 . Activity 实例化多次问题 : 如果某个 Activity 可以从多个 Activity 中启动 , 堆栈中会出现多个相同的 Activity , 该 Activity 被实例化了多次 , 可以通过设置启动模式 , 避免此类问题 ;


目录
相关文章
|
2月前
|
存储 XML 开发工具
探索安卓应用开发:从基础到进阶
在这篇文章中,我们将一起踏上安卓应用开发的旅程。不论你是编程新手还是希望提升技能的开发者,这里都有你需要的东西。我们会从最基础的概念开始,逐步深入到更复杂的主题。文章将涵盖开发环境设置、用户界面设计、数据处理以及性能优化等方面。通过理论与实践的结合,你将能够构建出既美观又高效的安卓应用。让我们一起开启这段技术之旅吧!
|
2月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
3月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
3月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
116 0
|
1月前
|
搜索推荐 Android开发 开发者
安卓应用开发中的自定义控件实践
在安卓应用开发的广阔天地中,自定义控件如同璀璨的星辰,点亮了用户界面设计的夜空。它们不仅丰富了交互体验,更赋予了应用独特的个性。本文将带你领略自定义控件的魅力,从基础概念到实际应用,一步步揭示其背后的原理与技术细节。我们将通过一个简单的例子——打造一个具有独特动画效果的按钮,来展现自定义控件的强大功能和灵活性。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往更高阶UI设计的大门。
|
2月前
|
Linux Android开发 iOS开发
深入探索Android与iOS的多任务处理机制
在移动操作系统领域,Android和iOS各有千秋,尤其在多任务处理上展现出不同的设计理念和技术实现。本文将深入剖析两大平台在后台管理、资源分配及用户体验方面的策略差异,揭示它们如何平衡性能与电池寿命,为用户带来流畅而高效的操作体验。通过对比分析,我们不仅能够更好地理解各自系统的工作机制,还能为开发者优化应用提供参考。
|
2月前
|
算法 Linux 调度
深入探索安卓系统的多任务处理机制
【10月更文挑战第21天】 本文旨在为读者提供一个关于Android系统多任务处理机制的全面解析。我们将从Android操作系统的核心架构出发,探讨其如何管理多个应用程序的同时运行,包括进程调度、内存管理和电量优化等方面。通过深入分析,本文揭示了Android在处理多任务时所面临的挑战以及它如何通过创新的解决方案来提高用户体验和设备性能。
55 1
|
2月前
|
缓存 监控 前端开发
探索Android应用开发之旅:从新手到专家
【10月更文挑战第42天】本文将带你踏上Android应用开发的旅程,无论你是初学者还是有经验的开发者。我们将一起探索如何从零开始创建你的第一个Android应用,并逐步深入到更高级的主题,如自定义视图、网络编程和性能优化。通过实际示例和清晰的解释,你将学会如何构建高效、吸引人的Android应用。让我们一起开启这段激动人心的旅程吧!
|
2月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
2月前
|
搜索推荐 前端开发 Android开发
安卓应用开发中的自定义视图实现
【10月更文挑战第30天】在安卓开发的海洋中,自定义视图是那抹不可或缺的亮色,它为应用界面的个性化和交互体验的提升提供了无限可能。本文将深入探讨如何在安卓平台创建自定义视图,并展示如何通过代码实现这一过程。我们将从基础出发,逐步引导你理解自定义视图的核心概念,然后通过一个实际的代码示例,详细讲解如何将理论应用于实践,最终实现一个美观且具有良好用户体验的自定义控件。无论你是想提高自己的开发技能,还是仅仅出于对安卓开发的兴趣,这篇文章都将为你提供价值。