安卓Activity的启动与清除

来源:互联网 发布:电脑实时监控软件 编辑:程序博客网 时间:2024/05/20 02:52
1.launchmode
standard 默认。每次都会新建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且可以有多个)
singleTop当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例 (每个Task都可以有,且可以有         多个,在栈顶时可复用)
singleTask新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(只有一个Task中会有)
singleInstance新建一个Task,且在该Task中只有它的唯一一个实例。 (只有一个Task会有,且该Task中只有它)
2.flag
Intent.setFlags(...);
FLAG_ACTIVITY_NEW_TASK默认。相当于standard
FLAG_ACTIVITY_SINGLE_TOP相当于singleTop。
FLAG_ACTIVITY_CLEAR_TOP相当于singleTask。
FLAG_ACTIVITY_BROUGHT_TO_FRONT栈中有A,A以这个FLAG启动B,B启动C,C再启动B,栈中情况变为A,C,B。
FLAG_ACTIVITY_REORDER_TO_FRONT栈中有A,B,C,以这个FLAG启动B,栈中情况变为A,C,B。
FLAG_ACTIVITY_NO_USER_ACTION 当前activity退到后台时,据新启动的Activity的Intent里是否有此FLAG来确定是用户选择退出。
FLAG_ACTIVITY_NO_HISTORY 原来是A,B,C,这个时候在C中以这个FLAG启动D,D再启动E,栈中情况变为A,B,C,E。
3.清除
默认如果用户离开Task很长一段时间,系统会清除Task中的所有Activity,除根Activity外。
alwaysRetainTaskStateTask的根Activity的这个特性设置为“true”时,Task保留所有的Activity,即便是离                   开很长时间。
clearTaskOnLaunch Task的根Activity的这个特性设置为“true”时,Task会清除所有Activity,包括根                    Activity,即便是短暂的离开。
finishOnTaskLaunch 这个特性和clearTaskOnLaunch相似,但它针对单个Activity,不是整个Task。


0 0
原创粉丝点击