如何在库模块Android Studio中调用主应用程序模块功能
Posted
技术标签:
【中文标题】如何在库模块Android Studio中调用主应用程序模块功能【英文标题】:How to call main app module function in library module Android Studio 【发布时间】:2021-12-17 05:26:52 【问题描述】:我正在处理一个现有项目,并想从库模块中调用主应用程序模块中的刷新功能。所以当库模块 verifyCode 完成后,它会调用主应用的刷新函数再次刷新视图。
build.gradle(:app)
dependencies
.
.
.
implementation project(path: ':dependency')
主应用模块
open class BaseActivity : AppCompatActivity()
lateinit var pref: PreferenceManager
lateinit var repository: BasicRepository
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
pref = PreferenceManager(this)
setupContentWindow()
override fun onResume()
super.onResume()
if (pref.checkCredential())
val intent = PinCodeActivity.intent(this, true, pref.token())
startActivity(intent)
refresh()
private fun refresh()
//refresh user data
库模块
private void checkCode(String pin, String token)
APIManager.getInstance().verifyCode(token, pin, new Callback<String>()
@Override
public void onResponse(Call<String> call, Response<String> response)
String responseUser = response.body();
if (response.code() == 200)
if (responseUser == "true")
setResult(RESULT_OK);
finish();
//call main app refresh function after the endpoint return 200
else
//do something
else
//do something
@Override
public void onFailure(Call<String> call, Throwable t)
//do something
);
【问题讨论】:
您的构建系统不发送数据。如果你想传递数据,你调用一个方法并返回它。 我的意思是如何将数据从依赖模块的文件传递到应用模块的文件?我不熟悉 android 开发,所以我不知道如何更好地命名它。请随时编辑我的问题! @GabeSechan 我再次编辑问题,现在应该更清楚我想要实现的目标。 【参考方案1】:您不能从构建 gradle 文件中传递数据。您需要使用意图/广播在模块之间发送数据。
【讨论】:
或者只是函数调用。仅当模块是不同的活动时才使用意图和广播。这种情况很少发生(尽管可以)。 我的意思是如何将数据从依赖模块的文件传递到应用模块的文件?我可以将数据从应用程序模块的文件发送到依赖模块文件,但不能以其他方式发送。当我尝试“Intent(this, className::class.java)”时,它找不到类名,我也无法在顶部导入它。我不知道如何以其他方式引用它。现在我可以传递数据依赖-> app only。 @14079_Z 您只使用 Intent 来启动 Activity 或 Service。那是你想要做的吗?或者您是否将数据从活动返回到启动器?或者你使用依赖 qs 一个库,你应该只是调用函数?不清楚你在这里做什么。但在任何情况下,您都不想创建一个循环的 gradle 依赖项。 创建项目的人将整个依赖文件复制到项目中。我正在尝试从依赖项文件中的应用程序模块文件中调用某些函数。我不知道实现它。以上是关于如何在库模块Android Studio中调用主应用程序模块功能的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio:是不是可以在主模块中定义库模块清单占位符?