在活动之间传递数据并获得结果

问题描述

我正在创建需要根据配置调用不同库的应用程序。这些库执行操作并响应结果,但问题在于它们的工作方式不同:

  • startActivityForResult/registerForActivityResult
  • 使用 startActivity 并传递我想用结果调用Intent
  • broadcastReceiver
  • ...

因此,我开始在我的应用程序和库之间创建一个层,以从所有不同的方法中抽象出应用程序。

我的第一个想法是创建一个新活动(layer-activity),我使用 registerForActivityResult 调用它以获取结果。这个新 Activity 管理对库的所有不同调用,并使用 setResult 将结果发送到应用。

它适用于第一种情况 (registerForActivityResult)。在第二种情况下(启动 Activity 并传递 Intent...),我之前提到过使用 registerForActivityResult 启动 layer-activity,并且这个 layer-activity 使用 startActivity 启动 library-activity 和传递 Intent 以接收响应(此 Intent 由 layer-activity 过滤)。

所有这些都有效,这意味着库结果到达 layer-activity,但随后它不会将响应发送到应用程序,因为(我认为)自从注册以来它不知道向谁发送响应在执行 startActivity(图书馆活动)时丢失了。

我的问题是:有什么方法可以保存注册registerForActivityResult),让我在收到库响应后(在第二种情况下)或我想要的任何时候发送结果?如果没有,我想我会用相同的方法调用 layer-activity(传递应用程序的 Intent)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)