有两个 app 之间需要一次通信,只需要一次,所以我想着用 broadcast。
App A 发一个 broadcast 给 app B,然后 B 需要 start 一个 activity,但 A 还需要等 B 结束这个 activity 之后才能执行下一步。
所以 B 在结束 activity 之后需要让 A 知道,我不确定是还需要从 B 给 A 发一个 broadcast 么?还是有没有什么比较简单的方法,不确定这样互相发送 broadcast 是不是最好的方法。
ringa_lee
不太確定具體的應用場景是什麼,只是兩個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()设置处理结果.
建議參考下《Android藝術開發探索》的第二章內容,裡面對進程之間的通訊有詳細介紹。
看具體.兩個程式如果是獨立且不可控的話,比如QQ和WEIBO,在你不確保用戶是否會同時啟動的話,最好的辦法是做個公共接口.
直接用aidl啊App之間通訊,妥妥的
如果只是簡單的打開另一個Activity,可以自訂應用的uri,具體看scheme屬性
scheme
如果是需要更具體的應用間通訊的話可以使用aidl
aidl
類似的還有使用服務作為中轉或使用廣播機制
推薦使用aidl
http://blog.csdn.net/github_3... aidl 詳細介紹
如@wangxw725 所說, 那才是可靠的方法, 用廣播的可靠性太差, 萬一其中一個切換到後台的Activity被系統回收了怎麼辦? 所以, 還是老老實實用隱式Intent方法吧
可以藉助AIDL實現進程間通訊
樓上都好厲害, 但是這個不是startActivityForResult()的用法?A直接調用B的頁面, 如果目標頁面不方便暴露出來, 就寫個中間頁面, 專門處理這種調用. 然後onActivityResult()處理.
不太確定具體的應用場景是什麼,只是兩個APP間啟動相應的組件,還是需要數據傳遞.根據你的描述,APP A是需要主動調起APP B的.可以試試用Activity的隱式啟動看能否解決:
建議參考下《Android藝術開發探索》的第二章內容,裡面對進程之間的通訊有詳細介紹。
看具體.兩個程式如果是獨立且不可控的話,比如QQ和WEIBO,在你不確保用戶是否會同時啟動的話,最好的辦法是做個公共接口.
直接用aidl啊App之間通訊,妥妥的
如果只是簡單的打開另一個Activity,可以自訂應用的uri,具體看
scheme
屬性如果是需要更具體的應用間通訊的話可以使用
aidl
類似的還有使用服務作為中轉或使用廣播機制
推薦使用aidl
http://blog.csdn.net/github_3... aidl 詳細介紹
如@wangxw725 所說, 那才是可靠的方法, 用廣播的可靠性太差, 萬一其中一個切換到後台的Activity被系統回收了怎麼辦? 所以, 還是老老實實用隱式Intent方法吧
可以藉助AIDL實現進程間通訊
樓上都好厲害, 但是這個不是startActivityForResult()的用法?
A直接調用B的頁面, 如果目標頁面不方便暴露出來, 就寫個中間頁面, 專門處理這種調用. 然後onActivityResult()處理.