1、對於使用standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。
例如a啟動a,a再接著啟動a,a繼續啟動a,然後再分別出棧,如圖所示
2、當活動的啟動模式指定為 singletop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直接使用它,不會再建立新的活動例項。
3、當活動的啟動模式指定為 singletask,每次啟動該活動時系統首先會在返回棧中檢查是否存在該活動的例項,如果發現已經存在則直接使用該例項,並把在這個活動之上的所有活動統統出棧,如果沒有發現就會建立乙個新的活動例項。
4、使用singleinstance 模式就可以解決這個問題,在這種模式下會有乙個單獨的返回棧來管理這個活動,不管是哪個應用程式來訪問這個活動,都共用的同乙個返回棧,也就解決了共享活動例項的問題。
假設b啟動a,a啟動c,其中a的啟動模式為singleinstance,則:
返回的頁面順序是c-b-a
轉(
Activity的四中啟動模式詳解
第一種 standard標準模式。在同乙個任務棧裡面每次都會建立新的例項。也就是說,如果你不停地啟動activity,就會不停地建立activity例項。第二種 singletop。如果activity是singletop模式,那麼當activity位於棧低,要啟動該activity的時候,會建立新...
Activity四種啟動模式
launchmode在多個activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的activity例項,是否重用已存在的activity例項,是否和其他activity例項公用乙個task裡。這裡簡單介紹一下task的概念,task是乙個具有棧結構的物件,乙個task可以管理多個acti...
Activity四種啟動模式
activity的啟動模式可以通過androidmanifest.xml檔案中的元素的屬性來指定,一共有4中模式 android name activitymain android launchmode singletask 1 standard 2 singletop 3 singletask 4...