activity啟動模式

2021-07-25 09:07:10 字數 1097 閱讀 2502

啟動模式就是acitivity啟動時的策略,在androidmanifext.xml中標籤的android:launchmode屬性設定

啟動模式有4中:standard, singletop, singletask, singleinstance

任務棧每個應用都有乙個任務棧,用來存放activity的,功能類似函式呼叫的棧,先後順序代表activity的出現順序。

啟動模式

(1)standard

activity預設啟動模式,每次啟動都會建立新的activity例項,並放入任務棧中。

(2)singletop

如果某個activity自己啟用自己,即任務棧頂就是該activity,則不需要建立,其餘情況都要建立activity例項。

新建的activity位於棧頂,同時其onnewintent方法會被呼叫,通過此方法的引數可獲得當前請求的資訊,注意,此時這個acitivity的oncreate,onstart不會被呼叫,因為它並沒有發生改變。如果新的activity已建立,但不在棧頂,則新的activity仍會被重新建立。

(3)singletask

如果要啟用的那個activity在任務棧中存在,則不需要建立,只需要把該activity放在棧頂,並把該actvity以上的所有actvity例項都pop.

也會呼叫onnewintent方法。

(4)singleinstance

如果應用1的任務棧中建立了mainactivity例項,如果應用2也要啟用mainactivity,則不需要建立,2應用共享該activity例項。

只存在乙個activity例項,同時只能單獨位於乙個任務棧中。

taskaffinity activity的乙個屬性,標識乙個activity所需要的任務棧,預設所有的activity的任務棧為應用名稱。

taskaffinity常與singletask配對使用,同時還有 allowtasktrparenting屬性,如果乙個應用的activity的allowtasktrparenting屬性為true, 那麼在另乙個應用a啟動這個activity之後,這個actiivty會儲存在它的任務棧,如果其本身的應用啟動這個activity,這個activity會從a的任務棧中出來,進入其應用的任務棧。

activity 啟動模式

在android的中activity 有4種啟動方式 standard singletop singletask singleinstance 下面就分輕重點講講這些啟動方式。1 standard啟動方式 這種方式也是系統預設的。說的簡單點,我們在使用startactivity 方法的時候,系統就會...

activity啟動模式

1 對於使用standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。例如a啟動a,a再接著啟動a,a繼續啟動a,然後再分別出棧,如圖所示 2 當活動的啟動模式指定為 singletop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...

Activity啟動模式

兩種方式可以定義activity啟動模式 manifest intent intent定義的啟動模式優先於manifest 不管activity執行在乙個新的任務還是與啟動它的activity同樣的任務,返回鍵總是把使用者帶到之前的activity。然而,如果啟動乙個singletask的activ...