Android界面组件的运行模式包括standard、singleTop、singleTask、singleInstance。
standard:系统每次调用组件时就会产生新的组件对象。
singleTop:如果被调用的界面组件与该任务栈顶组件的类型一致,那么系统就不会再为在界面组件构造新的对象,而是直接使用栈顶对象。适用于与用户交互时保持信息更新的界面组件,比如浏览器的书签,联系人搜索结果界面等等。
singleTask:任务栈中如果有该组件对象,则以该组件对象为根清空,弹出该对象。例如:ABC到ABCB,若是singleTask,则是ABC->AB。
singleInstance:其所在的任务中包含且只包含一个该组件对象,不会再有其他的组件对象。
singleTask和singleInstance适用于消耗内存较多的单实例界面组件,比如浏览器界面、音乐播放器界面等。
组件的粘度:指的是该组件期望和那些组件分配到同一个任务中。组件的粘度通过组件的配置项的android:taskAffinity属性设置。
<activity android:name=".BrowseActivity"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
.../>
作用:使得不论何时打开浏览器都可以保证组件处于上一个打开时的状态。