android 启动模式

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方法都会被从任务栈中移除

你可能感兴趣的:(android 启动模式)