Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          在Android 程序中有四個部分

          Activity 活動

          Intent Receiver

          Service 服務

          Content Provider

          一般程序都用到上述的組合實現。

          一但你確定了你的程序時什么類型的組件,你應該在AndroidManifest.xml中列出。【在這個文件中,你可以聲明這些組件的能力和需求】

           
          1.1  Activity

          活動時最基本的程序塊,由一個繼承Activity 的類來實現【通常是具有單一屏幕】。

          這個類將顯示一個組合Views的用戶接口,來響應事件。

          多數程序都由多個屏幕,每個屏幕由一個Activity 來實現,屏幕的移動通過啟動一個新的Activity來實現,不同Activity之間可能共享傳遞數據。

          以及當前屏幕跟后臺暫停的屏幕之間的調度、堆棧管理,數據交互傳輸、基準屏幕管理都時活動需要研究的概念。

           
          1.2  Intent and Intent Filters

          Android 通過類Intent 來從一個屏幕移動到另外一個屏幕【其描述一個應用系統想做什么】

          其中最重要的有兩個部分概念:

          動作 和 數據

          動作的一般值有:MAIN,VIEW,PICK,EDIT 等

          數據通過URI表示。

          比如:為了查看一個人的合同信息,可以創建一個Intent其具有一個View 動作,以及代表人的URI數據。

           

          另外一個相關類:IntentFilter,

          一個Intent 是做東西的一個有效請求

          Intent filter 是一個Activity 能夠處理的什么Intent的描述。

          比如:顯示一個人的合同信息的活動,將發布一個IntentFilter ,其說明它知道如何處理動作視圖,當應用數據來表示一個人。

          Android 將在AndroidManifext.xml中指定IntentFilters

           

          屏幕之間的導航通過解析Intents,往前跳轉時,一個Activity調用startActivity(myIntent),此時系統將查找所有安裝系統的Intents filters.并且獲取能夠跟myIntent匹配的活動。

          新活動將被通知,調用。

          解析Intents的過程在startActivity調用時發生,具有如下好處:

          通過intent的方式來創建請求,使得Activities能夠實現跨組件功能復用。

          任何活動可以被具有同等的IntentFilter的新活動替換。

          【設計框架要保證系統的服務模塊具有統一的接口可以進行替換處理】

          1.3  Intent Receiver

          如果想在你的系統中執行對特定事件的響應時,你可以采用IntentReceiver。

          如:電話響了,網絡數據可用了,午夜定時到了。

          Intent Receiver 不能顯示UI【類似SAP 的R3 開發平臺中的工作進程的后臺進程】,雖然可以用NotificationManager來提示用戶在有趣的事情發生時,通過在AndroidManifest.xml中注冊。同時也可以通過Context.registerReceiver()代碼進行注冊。

          不必要為了被調用的Intent receiver 來運行應用程序。系統將會啟動你的程序在一個internt receiver 觸發時。

          系統也會發送其自己的intent 傳播給其它的系統。通過Content.broadcastIntent()
          1.4  Service

          Service是那種沒有UI的長時間運行的代碼。【媒體播放器,在此播放器中,可能有一個或多個activites來允許用戶選擇歌曲或者開始播放;但是即使轉向一個新的Screen,歌曲最好仍然播放】

          此時媒體播放器應該利用Context.startService來啟動一個服務在后臺運行,系統會一直運行的,直到完成為至。

          可以通過Context.bindService來連接一個服務,然后通過服務的接口交互。

          更多詳細請看:Life Cycle of an Adrioid Application

           
          1.5  Content Provider

          程序可以在文件/SQLLite 數據庫存儲數據。如果你想同別的程序共享數據,你可以用Content provider. 一個Content Provider 即是一個類其實現一套標準的方法讓其它程序能夠存取相應的數據的。

          更多內容請關注:存取操作Content Providers.

          posted on 2009-09-15 21:03 calvin 閱讀(180) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 达拉特旗| 福鼎市| 团风县| 上林县| 叙永县| 五原县| 青阳县| 连平县| 祥云县| 南华县| 江口县| 汕尾市| 平江县| 明水县| 隆尧县| 沙田区| 蓬安县| 萝北县| 仁布县| 璧山县| 大石桥市| 毕节市| 张家港市| 肇州县| 盐边县| 正蓝旗| 伊川县| 太原市| 宜城市| 麻江县| 承德县| 惠安县| 仁寿县| 崇明县| 大冶市| 保靖县| 陕西省| 宣化县| 阜新市| 赞皇县| 湟中县|