日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 进程通信

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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呢?

由于對最后一種的疑惑,所以就借用搜索引擎學習了一番。

下面這個片文章將的非常好,有興趣的同學可以去看看。

http://blog.csdn.net/homebei2/article/details/6205380?reload ? ?點擊打開鏈接

當然這篇文章也有不足之處;

一個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 的實現方法個人感覺不難。

aidl學習的時候有點慢,這里推薦一篇文章:http://blog.csdn.net/jyfllzy/article/details/6299678 ?點擊打開鏈接

本人做的demo也分享給大家?http://download.csdn.net/detail/qiushibaiyi/5092725?點擊打開鏈接

總結

以上是生活随笔為你收集整理的android 进程通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。