Android---Activity的四種啓動模式

一、standard(標準模式):

無須指定launchMode屬性,默認採用standard加載模式。

如:DActivity不斷啓動自身,不斷新建DActivity實例,但TaskID一樣,所以不會啓動全新的Task;

按返回的時候,逐一從Activity棧頂刪除Activity實例;

二、singleTop(Task棧頂單例模式):

指定launchMode=“singleTop”;

如:任務棧中是A---B---C---D,D在棧頂,通過D啓動D,則不需要新建D實例,直接複用自己D實例,即調用onNewIntent()方法。且D啓動D沒有任何反應。

如果當前A---B---C,C啓動D就需要創建實例。這裏和模式一 一致。

三、singleTask(Task內單例模式):

不能有多個實例的存在,只能有一個實例;

如果當前已經存在D實例,直接複用D實例,即直接調用D的onNewIntent()方法。

(1)D不存在:創建DActivity實例,並放於棧頂;

(2)D存在:

①要啓動的D位於棧頂,則直接複用D實例,即直接調用D的onNewIntent()方法;

②D不在棧頂,則將D上面的Activity移除棧頂(將D放於棧頂);

四、singleInstance(全局單例模式):

無論在哪個Task中啓動DActivity,都只會創建一個D實例,並啓用全新的Task棧加載該DActivity實例;

①存在:無論位於哪個應用程序,哪個Task中,將Activity所在Task轉前臺,從而使它顯示;

②不存在:創建;


更多AndroidiOSPythonJavaMySQL的文章,請點擊:

http://blog.csdn.net/jamiecheung


更多JavaUnity3D的文章,請點擊:

http://blog.csdn.net/u010841622

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