Android中跨進程通信的四種方式

由於android系統中應用程序之間不能共享內存。因此,在不同應用程序之間交互數據(跨進程通訊)就稍微麻煩一些。在android SDK中提供了4種用於跨進程通訊的方式。這4種方式正好對應於android系統中4種應用程序組件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨進程調用其他應用程序的Activity;Content Provider可以跨進程訪問其他應用程序中的數據(以Cursor對象形式返回),當然,也可以對其他應用程序的數據進行增、刪、改操 作;Broadcast可以向android系統中所有應用程序發送廣播,而需要跨進程通訊的應用程序可以監聽這些廣播;Service和Content Provider類似,也可以訪問其他應用程序中的數據,但不同的是,Content Provider返回的是Cursor對象,而Service返回的是Java對象,這種可以跨進程通訊的服務叫AIDL服務。


Activity、ContentProvider、Broadcast和AIDL Service。其中Activity可以跨進程調用其他應用程序的Activity;ContentProvider可以訪問其他應用程序返回的Cursor對象;Broadcast採用的是被動接收的方法,也就是說,客戶端只能接收廣播數據,而不能向發送廣播的程序發送信息。AIDL Service可以將程序中的某個接口公開,這樣在其他的應用程序中就可以象訪問本地對象一樣訪問AIDL服務對象了。這4種跨進程通訊的方式可以應用在 不同的場合,例如,在需要顯示可視化的界面時可以用Activity,需要返回記錄集時可以用ContentProvider。至於在應用程序中具體要用 到哪一種或幾種方式進行跨進程通訊,讀者可以根據實際情況進行選擇。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章