android - 安卓两个app之间如何通信
ringa_lee
ringa_lee 2017-04-18 09:14:32
0
9
979

有两个 app 之间需要一次通信,只需要一次,所以我想着用 broadcast。

App A 发一个 broadcast 给 app B,然后 B 需要 start 一个 activity,但 A 还需要等 B 结束这个 activity 之后才能执行下一步。

所以 B 在结束 activity 之后需要让 A 知道,我不确定是还需要从 B 给 A 发一个 broadcast 么?还是有没有什么比较简单的方法,不确定这样互相发送 broadcast 是不是最好的方法。

ringa_lee
ringa_lee

ringa_lee

全部回覆(9)
阿神

不太確定具體的應用場景是什麼,只是兩個APP間啟動相應的組件,還是需要數據傳遞.根據你的描述,APP A是需要主動調起APP B的.可以試試用Activity的隱式啟動看能否解決:

1. 在APP B中可被调起的Activity 定义好intent-filter,action,data,category...以便可以被隐式启动;
2. 在APP A中根据APP B 里需要被隐式启动的Activity的intent-filter,封装好intent并startActivityForResult(...),在onActivityResult中等待从APP B返回的结果,进行下一步处理
3. 在APP B 中被调用的Activity里setResult()设置处理结果.
PHPzhong

建議參考下《Android藝術開發探索》的第二章內容,裡面對進程之間的通訊有詳細介紹。

巴扎黑

看具體.兩個程式如果是獨立且不可控的話,比如QQ和WEIBO,在你不確保用戶是否會同時啟動的話,最好的辦法是做個公共接口.

伊谢尔伦

直接用aidl啊App之間通訊,妥妥的

大家讲道理

如果只是簡單的打開另一個Activity,可以自訂應用的uri,具體看scheme屬性

如果是需要更具體的應用間通訊的話可以使用aidl

類似的還有使用服務作為中轉或使用廣播機制

推薦使用aidl

PHPzhong

http://blog.csdn.net/github_3... aidl 詳細介紹

阿神

如@wangxw725 所說, 那才是可靠的方法, 用廣播的可靠性太差, 萬一其中一個切換到後台的Activity被系統回收了怎麼辦? 所以, 還是老老實實用隱式Intent方法吧

Peter_Zhu

可以藉助AIDL實現進程間通訊

刘奇

樓上都好厲害, 但是這個不是startActivityForResult()的用法?
A直接調用B的頁面, 如果目標頁面不方便暴露出來, 就寫個中間頁面, 專門處理這種調用. 然後onActivityResult()處理.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板