【问题标题】:How is data transferred between modules in Android?Android中的模块之间如何传输数据?
【发布时间】:2020-10-20 14:11:46
【问题描述】:

如何在模块之间传输数据? B 模块实现 A 模块。所以模块B可以访问模块A。但是模块A不能访问模块B。如何将模块A中的某个活动的数据发送到模块B中的某个活动?模块 B 中的活动始终处于打开状态(当 A 模块中的活动正在运行时,我不会终止模块 B 中的活动)并且我无法使用意图结构,我使用 finish() 结束模块 A 中的活动。模块 A 中的 Activity 无法到达模块 B 中的 Activity。

模块B的gradle文件中有如下代码

implementation project(':ModuleA')

【问题讨论】:

  • 模块 A 应该提供一个接口来满足模块 B 的需要。模块 B 可以实现该接口并将其传递给模块 A 中的某些东西。
  • 我听说过这种方法,但在互联网上找不到任何示例。 @Tenfour04

标签: java android kotlin android-module


【解决方案1】:

我用下面的方法解决了这个问题。

在模块 B 中,我启动 ModuleAActivity。

startActivityForResult(Intent(this,ModuleAActivity::class.java),1)

在Module A中,我设置了数据。

var returnIntent = intent
returnIntent.putExtra("result",myData)
setResult(1, returnIntent)
finish()

然后再次在模块 B 中,我得到数据。

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == 1) {
        if (resultCode == 1) {
            val result = data?.getSerializableExtra("result")
        }
        if (resultCode == Activity.RESULT_CANCELED) {

        }
    }
}

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    相关资源
    最近更新 更多