android的四种启动模式,这个几乎面试必问的,之前经常搞混,现在项目种用到了启动模式,切被折磨了一番,故而特意写demo研究了一番。
1. android:launchMode="standard"
标准启动模式,这个不用多说,android默认的启动模式,每次调用startActivity()都会重新创建一个实例,可以用下面的adb命令来查看堆栈,就知道有多少个实例被创建出来。
查看当前运行的activity:adb shell dumpsys activity activities | findstr "Run"
2.android:launchMode="singleTask"
这个启动模式要着重说明一下,按官方的意思:1.如果在任务栈中没有实例存在,创建一个实例,并置于栈顶;
2如果任务栈中有该实例存在,则直接使用该实例,且将activity置于栈顶。
第一种情况会走activity的正常生命周期,及onCreate,onResume
第二种情况不走onCreate,走onResume ,且在他后面打开的activity如果再启动这个singelTask,不管是否调用finish方法都会被从任务栈中移除
网友评论