Activity的四種LaunchMode

    Android的Activity有四種啓動模式,分別爲standard模式,singleTop模式,singleTask模式,singleInstance模式。

    standard模式,也就是默認的模式,沒什麼特別性,就符合堆棧的先入後出原則,每次跳轉Activity都會創建Activity實例,並把它放入Activity棧中。

    singleTop模式,從字面表達也可以看出,棧頂單例。也就是說,當跳轉Activity時,如果跳轉的Activity在棧頂已經存在,那麼就重用該實例,否則會穿件新的實例並放入棧頂。例如在A頁面調用

Intent i = new Intent(A.this,A.class),系統並不會進行跳轉,如果在A頁面跳轉到B頁面,B頁面跳轉A頁面,我們會發現堆棧中出現了兩個A實例。

    singleTask模式,如果棧中已經存在該實例,不管是否在棧頂,都會重用該實例,彈出所有棧中在該實例之上的所有頁面。

    singleInstance模式:在新棧中創建該Activity實例,並讓多個應用共享該實例。如果在當前應用中,和singleTask的區別在於singleInstance不會移除原來在它棧中之上的實例。例如A->B(singleInstance)->C->B(singleInstance)->D,如果此時我們按Back鍵返回,則界面顯示爲D->B->C->A,顯然B只是被移動了位置。

    具體各模式操作可以下載源碼進行操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章