App程序中有很多Activity、你可以通俗的理解为把一个Activity看做是一个UI界面。在Andord系统中Activity是以堆栈<堆栈的特性:只有压入和弹出 先进后出>的形式存在。堆栈中的根Activity就是应用程序的启动Activity。而堆栈中最上方的Activity则是当前运行的/用户正在操作的UI Activity。
也可以这样去理解:堆栈中保存的是Activity对象,如果一个应用中多次使用了一个Activity,那么就会使同一个任务中出现多个该Activity的对象。一个程序在运行、他所启动的Activity通常情况下<注意是通常情况下>在同一个堆栈中、这个也叫做任务栈<Task>。
Activity和Task的关联: Activity在任务中的行为,受控于启动Activity的行为对象的标志位和清单文件中的<activity> 元素的属性的互相作用。
主要的行为标志有:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
..............等
主要的<activity>属性有:
launchMode
taskAffinity
allowTaskReparenting
alwaysRetainTaskState
clearTaskOnLaunch
finishOnTaskLaunch
下面将对每一个属性和标志一一介绍:
[虽然全是文字说明,稍有枯味、但只要你细细消化 相信使你对Activity栈的管理会进一步理解]
<activity>属性:
1、launchMode:Activity 4种启动模式
1>、standard: <默认启动模式>
在任务栈中总是创建一个新的Activity实例
2>、