【问题标题】:How to call main app module function in library module Android Studio如何在库模块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 我再次编辑问题,现在应该更清楚我想要实现的目标。

标签: javascript android


【解决方案1】:

您不能从构建 gradle 文件中传递数据。您需要使用意图/广播在模块之间发送数据。

【讨论】:

  • 或者只是函数调用。仅当模块是不同的活动时才使用意图和广播。这种情况很少发生(尽管可以)。
  • 我的意思是如何将数据从依赖模块的文件传递到应用模块的文件?我可以将数据从应用程序模块的文件发送到依赖模块文件,但不能以其他方式发送。当我尝试“Intent(this, className::class.java)”时,它找不到类名,我也无法在顶部导入它。我不知道如何以其他方式引用它。现在我可以传递数据依赖-> app only。
  • @14079_Z 您只使用 Intent 来启动 Activity 或 Service。那是你想要做的吗?或者您是否将数据从活动返回到启动器?或者你使用依赖 qs 一个库,你应该只是调用函数?不清楚你在这里做什么。但在任何情况下,您都不想创建一个循环的 gradle 依赖项。
  • 创建项目的人将整个依赖文件复制到项目中。我正在尝试从依赖项文件中的应用程序模块文件中调用某些函数。我不知道实现它。
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 2016-05-30
  • 2017-07-20
  • 2015-12-30
  • 1970-01-01
相关资源
最近更新 更多