Android中模块之间的数据是如何传输的?
How is data transferred between modules in Android?
如何在模块之间传输数据? B模块实现A模块。所以模块B可以访问模块A。但是模块A不能访问模块B。如何将模块A中的一些activity数据发送到模块B中的一些activity?模块 B 中的 activity 始终打开(当 A 模块中的 activity 为 运行 时,我不会杀死模块 B 中的 activity)并且我无法使用意图结构,我用 finish() 结束模块 A 中的 activity。模块 A 中的 Activity 无法到达模块 B 中的 activity。
模块B的gradle文件中有如下代码
implementation project(':ModuleA')
我用下面的方法解决了这个问题。
在模块 B 中,我启动 ModuleAActivity。
startActivityForResult(Intent(this,ModuleAActivity::class.java),1)
在模块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) {
}
}
}
如何在模块之间传输数据? B模块实现A模块。所以模块B可以访问模块A。但是模块A不能访问模块B。如何将模块A中的一些activity数据发送到模块B中的一些activity?模块 B 中的 activity 始终打开(当 A 模块中的 activity 为 运行 时,我不会杀死模块 B 中的 activity)并且我无法使用意图结构,我用 finish() 结束模块 A 中的 activity。模块 A 中的 Activity 无法到达模块 B 中的 activity。
模块B的gradle文件中有如下代码
implementation project(':ModuleA')
我用下面的方法解决了这个问题。
在模块 B 中,我启动 ModuleAActivity。
startActivityForResult(Intent(this,ModuleAActivity::class.java),1)
在模块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) {
}
}
}