Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android四大啟動模式

Android四大啟動模式

編輯:關於Android編程

為什麼android中需要Activity的啟動模式呢?個人感覺,默認情況下當android的activity被創建實例的時候,系統會將activity把該實例放入任務棧裡,新的實例會在舊的實例上面,這不難理解,但是,每一次啟動同一個activity的時候,系統也會新建一個實例,這很明顯不符合我們的需求,所以Google方面給android提供了四種activity的啟動方式,下面我就按照我的理解來簡單說明一下。

一、standard:標准模式,也就是我們平常開發中系統默認的一種啟動模式。

在standard模式下,每次啟動一個Activity都會重新創建一個實例,不管該實例是否已經存在。在正常的Activity生命周期中,每一次實例的創建,它的onCreate、onStart、onResume都會被調用。這也導致了所屬於該任務棧中很可能存在著多個同一個Activity,雖然只是實例不一樣,但有時候我們確實不需要這樣,所以出現了一下的三種啟動模式。

二、singleTop:棧頂復用模式。

在這種模式下,如果新的Activity已經位於該棧的棧頂,那麼該Activity不會被重新創建。而是直接復用已經存在的Activity。如下圖所示:

![A、B、C、D代表4個Activity](http://img.blog.csdn.net/20161121002739184)

其中在棧頂中已經存在著一個D,但是當新啟動同一個D的時候,由於D已經設置啟動模式為singleTop,所以在創建之前,會檢查棧頂中是否已經存在同義D,如果存在則會復用舊的而不會新建一個D的實例。所以最後的情況會保持之前的不變,也是ABCD這樣。

三、singleTask:棧內復用模式。

有點像單例模式,在創建新的Activity的時候,也會檢查棧內是否已經存在Activity,與singleTop不一樣的是,在於Top與Task二字的差異,也就是說,singleTop模式只會檢查棧頂,但是不在棧頂的Activity則不會檢查,所以singleTask就是解決這樣的一個尴尬的問題,它會檢查棧內的Activity,而不管是否在棧頂。如果存在就復用,否則新建。圖片就不貼了,應該比較容易理解。

四、singleInstance:單實例模式。

可以說是singleTask加強版,它也會檢查棧內的Activity是否存在,不同點的是,前面幾種模式都是在同一個棧而言的,而singleInstance則會新建一個棧來保存新建的Activity實例。也就是說該棧中只有它自己的一個實例。否則復用已經存在的Activity實例。

雖然上面簡單說明了四種啟動模式,但是這裡況需要特別的說明一下的是,Activity的啟動模式並不像上面說的那麼簡單,需要考慮具體情況,這裡就不詳細說明了,需要自己多敲代碼來體會,目前我還在摸索階段,希望哪天會有人告訴我一下。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved