Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 進程通信

android 進程通信

編輯:關於Android編程

從java web 轉到android有一段時間了,雖然根據以前的功底,完成一些簡單的android應用已經不成問題了。 但是,沒有經過系統的學習過android,始終感覺自己開發的時候“底氣不足”。 閱讀了部分android的開發文檔,android中最重要的幾個組件即:activity,service,content provider, broadcast,intent。 這些組件學習的時候都很好理解,但是一旦牽扯混合的時候總感覺有點犯迷糊。一切的根源就在於Intent,因為Intent是連接其他組件的重要且唯一的工具。 android,把每個apk都當做一個單獨的進程處理。進程之間的通信也就十分的重要了。 把android的進程通信分為兩種:進程之間,和進程之內的。 進程之內的比較簡單,通常都是用 Explicit intents 實現。 而進程之間的通信,需要是用Implicit intents進行實現。 (當然,如果進程內部,你使用Implicit intents也可以) 通過Intent,去啟動另一個activity ,service 或者發送一個broadcast。 當intent進行匹配activity,service或者broadcast的時候,就會發生一些情況。比如:你的intent 匹配了好多個,android怎麼選擇呢? 如果是activity,系統會彈出一個選擇畫面。如果是broadcast,所有的匹配項都會執行。如果是多個service呢? 由於對最後一種的疑惑,所以就借用搜索引擎學習了一番。   當然這篇文章也有不足之處; [html www.2cto.com 一個Intent對應多種匹配結果的處理說明   一個intent有多個可匹配的處理組件,系統如何處理?   分響應消息的組件類型:   1)如果是service那麼這些service都可以啟動並處理消息。   2)如果是Activity則會彈出一個對話框讓用戶進行選擇。   當一個intent有多個匹配結果的時候(進程之間的消息傳遞): 1)如果是activity,會彈出一個對話框讓用戶選擇。 2)如果是service,那麼這些service都會被啟動,但是執行處理響應的只有一個,執行哪個,是系統自行解決的(測試的結果是哪個先安裝執行哪個) http://stackoverflow.com/questions/8381324/two-service-with-the-same-intent-filter  點擊打開鏈接 3)如果是broadcast,那麼所有的匹配結果都會被處理   進程之間能共享和傳輸數(intent能傳輸參數,但是它的主要功能不應該在這上面): 1)content provider 2)使用aidl service content provider 的實現方法個人感覺不難。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved