第1章 Activity的生命周期和启动模式 1.2 Activity的启动模式

来源:互联网 发布:知乎 张汶祥 编辑:程序博客网 时间:2024/06/06 02:07

1.2 Activity的启动模式

1、启动模式种类:

(1)standsrd:标准模式;每次启动一个Activity都会重新创建一个新的实例,并进入启动它的任务栈中。
(2)singleTop:栈顶复用模式;如果新Activity已经位于任务栈的栈顶,那么Activity不会被重新创建,同时它的onNewIntent方法会被回调,通过此方法的参数可获得当前请求的信息,反之同standard。
(3)singleTask:栈内复用模式;单实例模式,启动Activity后,①任务栈不存在,重新创建,再创建实例放入栈中。②任务栈存在,实例不存在,创建实例压入栈中。③都存在,把实例调至栈顶并调用它的onNewIntent方法。
注:如果栈中Activity的排列顺序为DCBA,那么如果直接启动Activity B,则栈中Activity的排列顺序为BA,D也会出栈,因为(3)具有clearTop的功能。
(4)singleInstance:单实例模式;一个栈中只有一个Activity。

2、指定启动模式的方法:

(1)AndroidManifest.xml中Activity节点中android:launchMode="singleTask"。
(2)动态设置:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASKS);

3、使用adb shell dumpsys activity命令可查看任务栈的相关信息。

1 0
原创粉丝点击