`
huaxin803
  • 浏览: 113336 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 任务和回退堆栈---管理任务

 
阅读更多
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 任务跟回退堆栈

    Android自学笔记-16-任务栈

    Android提供了一种叫做“回退栈”(Back Stack)的概念,即当用户点击设备的返回键时,系统会从当前Activity弹出,恢复上一个Activity,这就是任务的回退操作。在任务栈中,Activity的顺序反映了用户的历史操作路径...

    Android任务管理器源码完整版.zip

    - **任务(Task)**:在Android中,任务是一系列按堆栈方式组织的Activity,它们共享相同的上下文,用户可以通过返回键逐个回退。任务可以看作是用户完成一项操作的一组界面。 - **任务管理器**:负责创建、维护和...

    基于安卓Android的任务管理器源码.zip

    在安卓(Android)系统中,任务管理器是一个至关重要的组件,它负责监控和管理设备上运行的应用程序和服务。本资源“基于安卓Android的任务管理器源码.zip”提供了一个实现此类功能的源代码实例,这对于理解Android...

    Android任务管理器源码.zip

    在Android系统中,任务管理器(Task Manager)扮演着至关重要的角色,它负责监控和管理运行中的应用程序,以及系统的资源分配。本资料“Android任务管理器源码.zip”提供了Android任务管理器的源代码,这对于深入...

    Activity堆栈管理demo

    返回栈(BackStack)是Activity堆栈的一部分,用于管理用户的回退操作。当用户按下设备的回退键或通过代码调用finish()方法时,栈顶的Activity会被弹出,前一个Activity就会显示出来。开发者可以通过使用FLAG_...

    安卓实现stack的回退和activitygroup的结合

    ActivityGroup是Android早期版本(API Level 13之前)提供的一种机制,用于在一个Task(任务)中创建和管理多个子Activity。它允许开发者将多个Activity组织在一起,形成一个逻辑上的容器,方便进行回退操作。然而,...

    安卓Android源码——任务管理器源码.zip

    在安卓系统中,任务管理器(Task Manager)扮演着至关重要的角色,它负责监控和管理运行中的应用程序,确保系统的高效稳定运行。这份“安卓Android源码——任务管理器源码.zip”包含的文件将帮助我们深入理解Android...

    [Android开发从零开始].9.Activity高级学习

    它们决定了新Activity如何被创建和堆栈管理,例如,单任务模式会清除所有栈中处于它之上的Activity,而单实例模式则在整个应用中只创建一个Activity实例。 4. **Activity的回退栈**:Activity的回退栈是系统管理...

    Android高级应用源码-模拟Activity进出栈.rar

    7. **回退栈的配置** - 可以通过`android:noHistory="true"`禁止Activity被添加到历史记录栈,这样当它结束时将不会保存状态。 - `android:launchMode`属性可以设置Activity的启动模式,如单实例、单任务等,影响...

    Note:一个简单的android任务管理器

    - 任务是按后进先出(LIFO)堆栈管理的,新启动的活动会被压入栈顶,用户回退时会弹出栈顶的活动。 2. **获取运行中的任务和活动** - 使用`ActivityManager`类可以获取系统中正在运行的任务和活动信息。例如,...

    java任务管理器基础代码

    4. **Activity管理**:维护Activity的生命周期,处理任务回退栈,比如使用`FLAG_ACTIVITY_NEW_TASK`启动新的任务。 5. **权限管理**:检查和申请必要的系统权限,如读写权限、网络权限等。 6. **服务管理**:启动、...

    Android高级应用源码-模拟Activity进出栈.zip

    在Android系统中,Activity的启动和切换被抽象为一个任务(Task)和一个堆栈(BackStack)。每当用户启动一个新的Activity,系统都会将它压入当前任务的堆栈中。当用户按下返回键或者通过其他方式退出Activity时,...

    Android开发 - Activity 初步

    Android使用任务(Task)和回退栈(Back Stack)来管理Activity。每个任务是一个Activity的堆栈,新的Activity被压入栈顶,按后进先出原则处理。按下设备的返回键,会弹出栈顶的Activity并销毁。 **源码分析** 博客...

    安卓Android源码——模拟Activity进出栈.zip

    在实际开发中,合理设计Activity的启动模式和管理任务栈,能够提升用户体验,避免不必要的内存消耗和混乱的导航结构。 8. **调试与监控** Android Studio提供了强大的工具,如`Android Profiler`和`Logcat`,可以...

    非常详细的Android开发指南中文版

    Android提供了一些机制来清理Activity堆栈,例如finish()方法可以结束当前Activity,BACK键也可以回退到上一个Activity,达到清理栈的效果。 **启动任务** 启动任务通常是通过Intent启动新的Activity,系统会根据...

Global site tag (gtag.js) - Google Analytics