Android中的任务和返回栈
任务栈的基础知识:
任务是指在执行特定作业时与用户交互的一系列 Activity。 这些 Activity 按照各自的打开顺序排列在堆栈(即“返回栈”)中。
为什么要用任务栈:
为了记录用户开启了那些activity,记录这些activity开启的先后顺序,google引入任务栈(task stack)概念,帮助维护好的用户体验。
如何查看当前系统的任务栈
手机中 –> 长按home或者多任务键会进到 概览屏幕 的一个界面
命令行中 –> adb shell dumpsys activity
基础点关于 Activiy启动模式
在AndroidMainifest.xml文件里面的activity标签设置启动模,简单实例如下:。
<activity
android:name=".FirstActivity"
android:launchMode="singleTop"
android:label="This is FirstActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
- standard,标准模式,每次都会创建新的Activity覆盖在原Activity上。
- singleTop,栈顶复用模式,首先判断栈顶Activity是否是要启动的Activity,如果是则不创建新的Activity而直接引用这个Activity;如果不是则创建新的Activity。
- singleTask,栈内复用模式,检测整个Activity栈中是否存在当前需要启动的Activity,如果存在则将该Activity置于栈顶,并销毁其上所有Activity。
- singleInstance,单实例模式,创建新的任务栈,且该任务栈仅有一个Activity。