有两个 app 之间需要一次通信,只需要一次,所以我想着用 broadcast。
App A 发一个 broadcast 给 app B,然后 B 需要 start 一个 activity,但 A 还需要等 B 结束这个 activity 之后才能执行下一步。
所以 B 在结束 activity 之后需要让 A 知道,我不确定是还需要从 B 给 A 发一个 broadcast 么?还是有没有什么比较简单的方法,不确定这样互相发送 broadcast 是不是最好的方法。
有两个 app 之间需要一次通信,只需要一次,所以我想着用 broadcast。
App A 发一个 broadcast 给 app B,然后 B 需要 start 一个 activity,但 A 还需要等 B 结束这个 activity 之后才能执行下一步。
所以 B 在结束 activity 之后需要让 A 知道,我不确定是还需要从 B 给 A 发一个 broadcast 么?还是有没有什么比较简单的方法,不确定这样互相发送 broadcast 是不是最好的方法。
如果只是简单的打开另一个Activity,可以自定义应用的uri,具体看scheme
属性
如果是需要更具体的应用间通信的话可以使用aidl
类似的还有使用服务作为中转或者使用广播机制
推荐使用aidl
如 @wangxw725 所说, 那才是靠谱的方法, 用广播的可靠性太差, 万一其中一个切换到后台的Activity被系统回收了怎么办? 所以, 还是老老实实用隐式Intent方法吧
楼上都好厉害, 但是这个不是startActivityForResult()的用法?
A直接调用B的页面, 如果目标页面不方便暴露出来, 就写个中间页面, 专门处理这种调用. 然后onActivityResult()处理.
2 回答1.5k 阅读✓ 已解决
2 回答1.9k 阅读
1 回答2.2k 阅读
3 回答650 阅读✓ 已解决
1 回答891 阅读✓ 已解决
1 回答1.4k 阅读
1 回答585 阅读✓ 已解决
不太确定具体的应用场景是什么,只是两个APP间启动相应的组件,还是需要数据传递.根据你的描述,APP A是需要主动调起APP B的.可以试试用Activity的隐式启动看能否解决: