1. 程式人生 > >Android一個啟動模式搞定的事情 我搞複雜了。。。順便複習Android四種啟動模式

Android一個啟動模式搞定的事情 我搞複雜了。。。順便複習Android四種啟動模式

Android的activity有四種啟動模式:

要設定一個activity的啟動模式就在menifest 即清單檔案中這個activity的節點下 設定

android:launchMode="啟動模式" 

standard

如果一個activity不設定的話這個就是預設的啟動模式,一個activity在這個模式下,開啟多少次這個activity就存在多少個這個activity的例項,比如進來activityA,這時候存在一個activityA的例項,如果在activityA跳轉到activityB,再從activityB調到activityA的話,這時候按返回鍵會回到B,再按返回鍵會回到activityA;

singleTask

如果一個activity設定為這個模式的話,那麼這個activity不管開啟多少次,都只有一個例項,比如常見的是登入activity,如果一個登入介面有一個註冊按鈕,點選註冊按鈕跳到註冊頁面,如果註冊頁面有“已有賬號直接登入”跳到登入頁面的話,跳到登入頁面的時候再按返回鍵就再回到註冊頁面,再按返回鍵又回到登入頁面。 所以把這個登入的activity的啟動模式設定為singleTask的話,上面的例子不管開啟多少次登入頁面,都只有一個登入activity的例項。

singleTop

簡單的說這個模式就是當一個activity處於棧頂的時候不會連續的建立兩個相同的activity,比如UC瀏覽器的主頁面,無論你開啟多少次這個主頁面,只要回到這個主頁面的時候,都只有一個例項,這樣的話你再按系統的返回鍵就會退出程式

singleInstance


一個activity設定這個模式的話,如果開啟這個activity的話就會建立新的任務棧,這個任務棧只有這個activity例項(不清楚任務棧的去百度百度吧~~~) 標題說的我就是因為剛做開發的時候,,,登入activity開啟多次,,按返回鍵的時候返回了好多次的登入頁面,,我想在開啟其他頁面的時候結束掉登入的activity,就網上百度用了activity的管理類。。。。可是又有其他的問題,賊尷尬。晚上回去洗澡的時候想到,,特麼的不就是一個啟動模式就搞定了嗎。。新手=========