1. standard模式android
它是活動默認的啓動模式,在不進行顯示制定的狀況下,全部活動都會自動使用這種啓動模式。每次經過此模式來啓動activity時,android總會爲目標activity啓動一個新的實例。spa
2. singleTop模式ip
它和standard模式有點相似,可是又一點是不一樣的:此模式下當將要被啓動的activity已經位於Task棧頂時,系統不會從新建立目標activity實例,而是複用已有的activity實例。it
若是將要被啓動的activity沒有位於Task棧頂時,此時系統會從新建立目標activity的實例,並將它加載到Task棧頂上。
程序
3. singleTask模式activity
使用這種加載模式的activity在同一個Task內只有一個實例,當系統採用此singleTask模式啓動activity時,能夠分爲三種狀況:
vi
<1> 若是將要啓動的activity不存在,系統將會建立目標activity實例,並將它加入到Task棧頂。ps
<2> 若是將要啓動的activity已經位於Task棧頂,此時與singleTop模式的行爲相同。實例
<3> 若是將要啓動的activity已經存在,但沒有位於Task棧頂,系統將會把位於該activity上面的全部activity移出Task棧,從而使得目標activity轉入棧頂。系統
4. singleInstance模式
此加載模式下,不管從哪一個Task中啓動目標activity,只會建立一個目標activity實例,並會使用一個全新的Task棧來裝載該activity實例。當系統採用singleInstance模式啓動activity時,能夠分爲兩種狀況:
<1> 若是將要啓動的activity不存在,系統會先建立一個全新的Task、再建立目標activity的實例,並將它加入新的Task的棧頂。
<2> 若是將要啓動的activity已經存在,不管它位於哪一個應用程序中,不管它位於哪一個Task中,系統將會把該activity所在的Task轉到前臺,從而使用該activity顯示出來。
tips:須要指出的是,採用singleInstance模式加載activity老是位於Task棧頂,採用singleInstance模式加載activity所在Task只包含該activity。