Android通过把所有的已启动的Activity依次放到同一个后进先出的堆栈里来进行管理,对于大多数应用程序来说这种方法能够很好的工作,并且你不必担心Activity是如何跟任务关联的或者他们是如何存在回退堆栈中的。但是,你可能决定要打破这种通常的行为。或许你想要应用程序中的一个Activity在启动的时候开启一个新的任务(而不是放在当前的任务中);或者当你启动一个Activity时,你想使用之前既存的实例(而不是在回退堆栈的顶部创建一个新的实例);或者你想在用户离开这个任务时清除回退堆栈中根Activity以外的所有Activity。
你能够使用<activity>清单元素中的属性和传递给startActivity()方法的Intent中的标识来做这些事情,甚至更多。
<activity>的主要属性包括:
taskAffinity
launchMode
allowTaskReparenting
clearTaskOnLaunch
alwaysRetainTaskState
finishOnTaskLaunch
Intent的主要标识包括:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
在以后的章节中,你会看到怎样使用这些清单属性和Intent标识来定义Activity是如何跟任务关联的以及在回退堆栈中的行为。
警告:大多数应用程序都不应该终端Activity和task的默认行为。如果你决定必须编辑Activity的默认行为,就要谨慎使用,并且确保启动期间和使用回退按钮从其他的Activity和任务中返回时这个Activity的可用性。同时确保导航的结果与用户的预期行为一致。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
android 任务跟回退堆栈
Android提供了一种叫做“回退栈”(Back Stack)的概念,即当用户点击设备的返回键时,系统会从当前Activity弹出,恢复上一个Activity,这就是任务的回退操作。在任务栈中,Activity的顺序反映了用户的历史操作路径...
- **任务(Task)**:在Android中,任务是一系列按堆栈方式组织的Activity,它们共享相同的上下文,用户可以通过返回键逐个回退。任务可以看作是用户完成一项操作的一组界面。 - **任务管理器**:负责创建、维护和...
在安卓(Android)系统中,任务管理器是一个至关重要的组件,它负责监控和管理设备上运行的应用程序和服务。本资源“基于安卓Android的任务管理器源码.zip”提供了一个实现此类功能的源代码实例,这对于理解Android...
在Android系统中,任务管理器(Task Manager)扮演着至关重要的角色,它负责监控和管理运行中的应用程序,以及系统的资源分配。本资料“Android任务管理器源码.zip”提供了Android任务管理器的源代码,这对于深入...
返回栈(BackStack)是Activity堆栈的一部分,用于管理用户的回退操作。当用户按下设备的回退键或通过代码调用finish()方法时,栈顶的Activity会被弹出,前一个Activity就会显示出来。开发者可以通过使用FLAG_...
ActivityGroup是Android早期版本(API Level 13之前)提供的一种机制,用于在一个Task(任务)中创建和管理多个子Activity。它允许开发者将多个Activity组织在一起,形成一个逻辑上的容器,方便进行回退操作。然而,...
在安卓系统中,任务管理器(Task Manager)扮演着至关重要的角色,它负责监控和管理运行中的应用程序,确保系统的高效稳定运行。这份“安卓Android源码——任务管理器源码.zip”包含的文件将帮助我们深入理解Android...
它们决定了新Activity如何被创建和堆栈管理,例如,单任务模式会清除所有栈中处于它之上的Activity,而单实例模式则在整个应用中只创建一个Activity实例。 4. **Activity的回退栈**:Activity的回退栈是系统管理...
7. **回退栈的配置** - 可以通过`android:noHistory="true"`禁止Activity被添加到历史记录栈,这样当它结束时将不会保存状态。 - `android:launchMode`属性可以设置Activity的启动模式,如单实例、单任务等,影响...
- 任务是按后进先出(LIFO)堆栈管理的,新启动的活动会被压入栈顶,用户回退时会弹出栈顶的活动。 2. **获取运行中的任务和活动** - 使用`ActivityManager`类可以获取系统中正在运行的任务和活动信息。例如,...
4. **Activity管理**:维护Activity的生命周期,处理任务回退栈,比如使用`FLAG_ACTIVITY_NEW_TASK`启动新的任务。 5. **权限管理**:检查和申请必要的系统权限,如读写权限、网络权限等。 6. **服务管理**:启动、...
在Android系统中,Activity的启动和切换被抽象为一个任务(Task)和一个堆栈(BackStack)。每当用户启动一个新的Activity,系统都会将它压入当前任务的堆栈中。当用户按下返回键或者通过其他方式退出Activity时,...
Android使用任务(Task)和回退栈(Back Stack)来管理Activity。每个任务是一个Activity的堆栈,新的Activity被压入栈顶,按后进先出原则处理。按下设备的返回键,会弹出栈顶的Activity并销毁。 **源码分析** 博客...
在实际开发中,合理设计Activity的启动模式和管理任务栈,能够提升用户体验,避免不必要的内存消耗和混乱的导航结构。 8. **调试与监控** Android Studio提供了强大的工具,如`Android Profiler`和`Logcat`,可以...
Android提供了一些机制来清理Activity堆栈,例如finish()方法可以结束当前Activity,BACK键也可以回退到上一个Activity,达到清理栈的效果。 **启动任务** 启动任务通常是通过Intent启动新的Activity,系统会根据...