基礎篇 十四 程序間通訊

2021-07-10 14:23:14 字數 858 閱讀 2676

在android中提供了四種跨程序通訊的方式。對應於android四大元件:

activity、content provider、

broadcastreciever

和service。

一、activity被其他程序呼叫。

在androidmanifest.xml檔案中註冊

activity時,設定action作為id,用來被呼叫。

intent callintent = new intent(intent.action_call, uri.parse("tel:12345678");  

startactivity(callintent);

二、contentprovider被其他程序訪問,對其資料進行增、刪、改、查的操 作。

在androidmanifest.xml檔案中註冊

contentprovider時,設定

authorities作為id,用來被呼叫。

三、broadcastreciever的監聽其他程序傳送的broadcast,對其進行處理;

在androidmanifest.xml檔案中註冊

broadcastreciever時,

設定action作為id,用來被呼叫。

四、service被其他程序訪問,需要用到

aidl(android inte***ce definition language)。

在androidmanifest.xml檔案中註冊

service時,

設定action作為id,用來被繫結。 繫結後利用binder來和service通訊。

參考()

程序間通訊(上)基礎函式篇

printf d d n fds 0 fds 1 3和4,相當於用兩種方式開啟了1個檔案 pid t id fork 建立子程序 if id 0 close fds 1 關閉pipe檔案 exit 0 else if id 0 else waitpid id,null,0 等待子程序退出 int m...

程序篇 程序間通訊《訊息佇列》

訊息佇列就是訊息的鍊錶,存放在核心中並由訊息佇列識別符號表示。訊息佇列提供了乙個從乙個程序向另乙個程序傳送資料塊的方法,每乙個資料塊都可以被認為是有乙個型別,接收者接受的資料塊可以有不同的型別。但是和管道類似的是,它有乙個不足就是每個訊息的最大長度是有上限的 每個訊息佇列的總的位元組數 系統上訊息佇...

程序間通訊之管道篇

這裡我們談談程序間互動的機制,這裡不同於使用訊號來讓程序間傳送訊息。當從乙個程序連線資料流到另乙個程序時,我們使用術語管道 pipe 我們通常是把乙個程序的輸出通過管道連線 到另乙個程序的輸入。我們來看看底層的pipe 函式呼叫。通過這個函式在兩個程式間傳遞資料不需要啟動乙個shell來解釋請求的命...