android的四種啟動模式,這個幾乎面試必問的陕悬,之前經(jīng)常搞混题暖,現(xiàn)在項目種用到了啟動模式,切被折磨了一番捉超,故而特意寫demo研究了一番胧卤。
1. android:launchMode="standard"
? ? ? 標準啟動模式,這個不用多說拼岳,android默認的啟動模式枝誊,每次調(diào)用startActivity()都會重新創(chuàng)建一個實例,可以用下面的adb命令來查看堆棧惜纸,就知道有多少個實例被創(chuàng)建出來叶撒。
? ?查看當前運行的activity:adb shell dumpsys activity activities | findstr "Run"
2.android:launchMode="singleTask"
?? ? 這個啟動模式要著重說明一下绝骚,按官方的意思:1.如果在任務(wù)棧中沒有實例存在,創(chuàng)建一個實例痊乾,并置于棧頂皮壁;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2如果任務(wù)棧中有該實例存在,則直接使用該實例哪审,且將activity置于棧頂蛾魄。
?第一種情況會走activity的正常生命周期,及onCreate,onResume
?第二種情況不走onCreate,走onResume 湿滓,且在他后面打開的activity如果再啟動這個singelTask,不管是否調(diào)用finish方法都會被從任務(wù)棧中移除