原文出處:
對進行了翻譯
在乙個android 應用中有如下的四種元件:
* activity 活動元件
* intent receiver 接受處理元件
* service 服務元件
* content provider 內容提供元件
乙個android 應用並不需要同時具有這四個元件,應用可以組合這些元件。
在應用中一旦決定使用了哪些元件,就需要在androidmanifest.xml檔案中列舉出來。可以參考android manifest file documentation
開啟新的頁面時,前乙個頁面將會暫停,放置到乙個歷史堆疊中,使用者可以使用後退鍵瀏覽前面的頁面,頁面也可以從堆疊中刪除。android會為每乙個從主頁面home screen(idle介面?)啟動的應用維護乙個歷史堆疊列表。
intent and intent filters
android使用乙個叫intent的類從乙個頁面移動到另外乙個頁面。乙個intent描述了應用將要做的事情,就是一種動作行為。最重要的有兩點: 動作的型別和動作所捎帶的引數(資料),典型的動作型別為main(activity的正門),view, pick, edit等等。引數資料以uri形式來表示。例如,為了檢視乙個人的聯絡資訊,需要建立乙個intent,動作型別為view,人名為引數資料(需要格式 化為uri)。
乙個activity為了表明能夠處理某些intent,android設計了乙個相關的類intentfilter,activity在 intentfilter中決定它能夠處理的intent動作型別,intentfilter需要在androidmanifest.xml檔案中進行聲 明。
從乙個頁面到另外乙個頁面跳轉的依據在於發出的intent,為了向前瀏覽,activity呼叫startactivity(myintent). android系統在所有安裝的應用程式中查詢intent filters,找出最能夠匹配myintent的activity。新的activity將被啟動,intent被傳入。有如下兩個關鍵點:
* activities 能夠重新被使用
* activities 在任何時候都可以被替換,只要乙個activity設定了相同的intentfilter
intent receiver
在應用程式中,針對外部事件需要執行一些動作來反饋,可以使用intentreceiver類。例如:來了乙個**,或者資料通道可用,或者晚上到了。 intent receiver沒有ui的顯示,儘管可以通過notificationmanager 通知使用者某些有趣的事情發生了。intent receivers也需要在androidmanifest.xml中進行宣告,當然也可以在程式中呼叫 context.registerreceiver()介面動態宣告。同時在應用程式沒有跑起來的時候也能夠呼叫intent receivers,當乙個intent receivers被觸發時,android系統將會啟動這個應用程式。應用程式也能夠通過context.broadcastintent()廣播他們 的intent。
應用程式可以在檔案中,資料庫或者其他裝置儲存他們的資料。content provider用於將各個應用程式的資料進行共享,content provider是乙個類,執行一套標準的方法,讓其他的應用程式儲存和獲取content provider所處理的資料。更多的內容可以參考
accessing content providers.
Google Android開發精華教程
乙個demo讓你掌握android的各種service android開發教程專題 android 動畫效果專題研究 盤點android 所有dialog大合集 乙個帖子學會android開發四大元件 近百個android開源專案,覆蓋android每個領域 android例項 基本控制項及基本動畫...
Google Android創贏路線與產品開發實戰
本文選自 it s android time google android創贏路線與產品開發實戰 一書 創作者談 清晰記得2009年10月的時候,電子工業出版社編輯張春雨找到我討論這樣一本書,那時候,我們就已經可以想到市場上android技術書籍將很快氾濫,且都會陷入細枝末節的套路中,無法從更好的層...
Google Android創贏路線與產品開發實戰
本文選自 it s android time google android創贏路線與產品開發實戰 一書 創作者談 清晰記得2009年10月的時候,電子工業出版社編輯張春雨找到我討論這樣一本書,那時候,我們就已經可以想到市場上android技術書籍將很快氾濫,且都會陷入細枝末節的套路中,無法從更好的層...