2013年12月23日 星期一

[Android]Application、Activity Stack 和 Task

1. 什麼是Android Application?
Android Application就是一個android應用程序。 簡單的理解就是一個apk就是一個Android Application。例如Android平台下自帶的應用程序:Browser、Contacts、camera等。
每一個Application都是由Activity、Service、content Provider和Broadcast Receiver等Android的基本組件所組成,其中Activity是實現應用程序的主體,它承擔了大量的顯示和交互工作,甚至可以理解為一個界面就是一個Activity。
2. 什麼是Activity Stack?
如上所訴,Activity承擔了大量的顯示和交互工作,從某種角度上將,我們看見的應用程序就是許多個Activity的組合。為了讓這許多Activity協同工作而不至於產生混亂,Android平台設計了一種堆棧機制用於管理Activity,其遵循先進後出的原則,系統總是顯示位於棧頂的Activity,從邏輯上將,位於棧頂的Activity也就是最後打開的Activity,這也是符合邏輯的。
在操作應用程序時,每次啟動新的Activity,都會將此壓入Activity Stack,當用戶執行返回操作時,移除Activity Stack頂上的Activity,這樣就實現了返回上一個Activty的功能。直到用戶一直返回到Home Screen,這時候可以理解為移除了Activity Stack所有的Activity,這個Activity Stack不再存在,應用程序也結束了運行。
3. 什麼是Task?
Task是指將相關的Activity組合到一起,以Activity Stack的方式進行管理。從用戶體驗上講,一個“應用程序”就是一個Task,但是從根本上講,一個Task是可以有一個或多個Android Application組成的。例如:你想在發送短信時,拍一張照並作為彩信發出去,這時你首先停留在短信應用程序的的Acitivity上,然後跳轉到Camera應用程序的Activity上,當完成拍照功能後,再返回到短信應用程序的Activity。這實際上是兩個Android Application協同合作後完成的工作,但為了更好的用戶體驗,Android平台加入了Task這麼一種機制,讓用戶沒有感覺到應用的中斷,讓用戶感覺在一“應用程序”里就完成了想完成的工作。

沒有留言: