我正在整合两个不同的APK,其逻辑非常简单:
App A调用App B传递金额 应用B收到请求 如果App B的“活动”活动当前在(主要)活动C中 设定金额 允许用户处理金额 一旦完成处理,就向App A返回一个交易号 其他 将RESULT_CANCELED返回给App A
鉴于此,我当然可以通过startActivityForResult调用App B,但是:
有人有一个简单的例子吗?
答案 0 :(得分:1)
如果调用活动和被叫活动在同一任务中运行,则只能使用startActivityForResult()
。否则,startActivityForResult()
会立即通过onActivityResult()
生成RESULT_CANCELED
。
鉴于上述前提,如果App A使用startActivityForResult()
启动App B,这将始终创建App B主要活动的新实例,因此App B无法处于任何其他状态
如果2个应用程序在不同的任务中运行,那么您将需要使用其他机制(广播意图,后台服务,共享文件或类似的东西)在它们之间进行通信。