- Standard 標準啟動模式(默認啟動模式)
- SingleTop啟動模式:如果在堆棧的最上層已經有這個Activity偏友,那么直接重用堆棧上面的那個Activity
- SingleTask啟動模式:如果堆棧中已經這個Activity,那么在此啟動Activity的時候會將這個Activity在堆棧上面的其它Activity 清除掉晴股,然后顯示
- SingleInstance啟動模式:啟動這個模式的Activity會重新新建一個堆棧,每次啟動Activity的時候就會調用這個堆棧里面的Activity
taskAffinity
taskAffinity名字沒有設置好
- taskAffinity需要和SingleTask配合使用踊赠,和其它的啟動模式配合在一起有用呵扛,并且taskAffinity的值里面需要有.否則安裝App不成功
堆棧信息
Activity的Xml文件
從這兩幅圖中可以看出,最開始的堆棧id是64筐带,然后 當到了AActivity之后變?yōu)榱?5今穿,之后BActivity和CActivity都變成了65,說明AActivity設置了TaskAffinity之后,接下來的Activity都放在了AActivity放的堆棧中了伦籍。
當最后跳轉到AActivity的時候調用了onNewIntent()
Intent的flag
當在Service和Application啟動Activity的時候需要設置FLAG_NEW_TASK這樣才能夠啟動成功蓝晒,因為Service和Application所在的Context沒有在一個堆棧中