Android Application Task Activities的關系 – Android移動開發技術文章_手機開發 Android移動開發教學課程

什麼是Android  Application?


簡單來說,一個apk文件就是一個Application。


任何一個Android Application基本上是由一些Activities組成,當用戶與應用程序交互時其所包含的部分Activities具有緊密的邏輯關系,或者各自獨立處理不同的響應。


這些Activities捆綁在一起成為瞭一個處理特定需求的Application, 並且以“.apk”作為後綴名存在於文件系統中。


Android平臺默認下的應用程序 例如:Email、Calendar、Browser、Maps、Text Message、Contacts、Camera和Dialer等都是一個個獨立的Apps。


 


安裝 Application的過程也可以簡單理解為將其所包裹的Activities導入到當前的系統中,如果系統中已經存在瞭相同的Activities, 那麼將會自動將其關聯,而不會重復安裝相同的Activities,避免資源的浪費。


Application卸載的過程也會檢查當前所關聯的 Activities是否有被其它Application標簽所關聯,如果僅僅是提供當前的Application使用,那麼將會徹底被移除,相反則不做 任何操作。


 


就像我們已經知道的,Application基本上是由四個模塊組成:Activity、Service、Content Provider 和 Broadcast Receiver,其中Activity是實現應用的主體。


 


什麼是 Activity Stack?


操作應用程序時,有時需要調用多個Activities來完成需求,例如:發送郵件程序,首先是進入郵件主界面,然後啟動一個新的Activity用於填寫新郵件內容,同時可以調出聯系人列表用於插入收件人信息等等。在這個操作過程中 Android平臺有一個專門用於管理Activities堆棧的機制,其可以方便的線性記錄Activities實例,當完成某個操作時,可以通過導航功能返回之前的Activity(通過按操作臺的“Back”按鈕)。


每次啟動新的Activity都將被添加到Activity Stack。用戶可以方便的返回上一個Activity直到Home Screen,到達Home Screen後,將無法再繼續查看堆棧記錄(俗話說:到頭瞭)。如果當前Task被中止(Interrupting the task),返回到系統主界面後啟動瞭其它操作,當希望返回到前一個Task繼續執行時,隻需要再次通過主界面的Application launcher或者快捷方式啟動這個Task的Root Activity便可返回其中止時的狀態繼續執行。


相對於Views、Windows、Menus和Dialogs而言,Activity是唯一可被記錄在History stack中的數據,所以當你所設計的應用程序需要用戶由A界面進入到次一級界面B,當完成操作後需要再次返回A,那麼必須考慮將A看作為 Activity,否則將無法從歷史堆棧中返回。


 



什麼是Task


當我們需要一個Activity可以啟動另一個Activity,可能另外一個Activity是定義在不同應用程序中的Activity。


例如,假設你想在你的應用中讓用戶顯示一些地方的街景。而這裡已經有一個Activity可以做到這一點,因此,你的Activity所需要做的隻是在Intent對象中添加必要的信息,並傳遞給startActivity()。地圖瀏覽將會顯示你的地圖。當用戶按下BACK鍵,你的Activity會再次出現在屏幕上。


對於用戶來說,看起來好像是地圖瀏覽與你的Activity一樣,屬於相同的應用程序,即便是它定義在其它的應用程序裡,並運行在那個應用程序的進程裡。


Android通過將這兩個Activity保存在同一個Task裡來體現這一用戶體驗。簡單來說,一個Task就是用戶體驗上的一個“應用”。 
它將相關的Activity組合在一起,以stack的方式管理(就是前面提到的Activity Stack),這就是Task。


 


在Android平臺上可以將task簡單的理解為幽多個Activity共同協作完成某項應用,而不管Activity具體屬於哪個Application,


通過下圖可以更清晰的理解Application、task、Activity三者之間的關系:


image


 


Task 有啥用?


我們用過Android的手機就會知道有下面的場景:


假設我們首先在用IReader在看書,從選書到具體書的閱讀界面,這是有好幾個Activity。我們每一個點擊的Activity都被放在閱讀這個Task對應的Activity Stack中瞭,這可以放我們通過回退鍵返回每一個前面的Activity。


我們在閱讀到一半時,想看看Sina微博,按Home鍵離開瞭IReader。


<P style="PADDING-BOTTOM: 0px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGH

You May Also Like