Activity 啟動模式,activity啟動模式

來源:互聯網
上載者:User

Activity 啟動模式,activity啟動模式
Activity的啟動模式有四種,分別是standard、singleTop、singleTask、singleInstance。 Android是通過回退棧的模式來管理Activity執行個體的。棧是一種先進後出的集合。比如我們開啟一個Activity,當前顯示的就是在棧的最頂端,當使用者點擊後退或者是應用的返回按鈕的時候,此時系統就會將棧頂的Activity出棧,那麼在原來棧頂的下一個Activity就會變成棧頂從而顯示在裝置上。 standard預設模式,可以不用寫配置。在這個模式下,都會預設建立一個新的執行個體。因此,在這種模式下,可以有多個相同的執行個體,也允許多個相同Activity疊加。就是說同一個任務棧中可以有多個Activity存在。 例如:如果ActivityA已經存在了,在這個ActivityA調用它的startActivity()啟動一個新的ActivityA,那麼這是就是有兩個ActivityA了。 singleTop 可以有多個執行個體,但是不允許多個相同Activity疊加。即,如果Activity在棧頂的時候,啟動相同的Activity,不會建立新的執行個體,而是重用這個在棧頂的Activity,並且會調用其onNewIntent方法。 singletop模式,如果新啟動一個新的執行個體,不在棧頂的話會重新建立一個新的執行個體,那麼他的行為就跟standard模式一樣。  singleTask只有一個執行個體。在同一個應用程式中啟動他的時候,若Activity不存在,則會在當前task建立一個新的執行個體,若存在,則會把task中在其之上的其它Activity destory掉並調用它的onNewIntent方法。如果是在別的應用程式中啟動它,則會建立一個task,並在該task中啟動這個Activity,singleTask允許別的Activity與其在一個task中共存,也就是說,如果我在這個singleTask的執行個體中再開啟新的Activity,這個新的Activity還是會在singleTask的執行個體的task中。  singleInstance只有一個執行個體,並且這個執行個體獨立運行在一個task中,這個task有且只有一個執行個體,不允許有別的Activity存在。當再次啟動該Activity的時候,會重用已存在的任務和執行個體。 singletask與singleInstance不同的是,singletask在一個任務中只有一個執行個體,singleinstance在整個系統中只能有一個,singletask在不同的任務中是可以存在多個執行個體的。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.