lib模块和主模块之间如何通信

2024-04-05

建筑工程

我有2个模块:

  • app(应用)
  • box(库模块)

PROBLEM

我正在尝试使用一部分app模块来自box模块。 问题是app模块依赖于box模块因此我无法指出box模块,因为这会产生循环依赖。

如何去app模块方法来自box模块 ?

Or

如何通知某些接收者app模块有一些数据要获取吗?

EDIT

我以第三个模块结束common保持模块的交集app and box.


您不能直接调用依赖于您的库的模块。这种依赖会违背图书馆的目的。但是您可以在 Box 模块中定义一个接口,该库的客户端必须实现该接口才能正常运行。

例子: 在您的 Box 模块中定义一个接口

interface ThereIsSomeDataToGet(){
   void doSomething();
}

在您的应用程序模块中,您可以调用

Box.registerCallback(new ThereIsSomeDataToGet(){...})

现在在盒子模块中,您有一个对应用程序模块的回调,没有任何硬依赖关系,当库中有一些新数据时,您只需要调用

ThereIsSomeDataToGet.doSomething();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lib模块和主模块之间如何通信 的相关文章

  • 如何为android数据绑定点击监听器编写proguard规则?

    我在用databinding在我的应用程序中 它运行良好 但是当我启用minifyEnabled true and shrinkResources true比它告诉我一些错误 Execution failed for task app tr
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • Phonegap(应用程序错误...发生网络错误)

    我已经使用phonegap 创建了一个版本 在index html 文件中 我编写了一个简单的iframe 用于加载网站 当我从phonegap获取本地url时它就起作用了 但如果我将整个构建作为 zip 文件上传到 PhoneGap 中
  • android:ScrollView(或视差)内的RecyclerView

    我有一个片段2 次卡片浏览内有多个控件 below我有第二个卡片视图回收者视图 这有效perfect 问题是 recyclerview 启动了屏幕的最底部 并且滚动recyclerview非常small 以前使用过列表视图 这使我可以适应您
  • Android 中图像字节表示的每像素字节数

    我目前正在编写一个Android应用程序 需要在其中使用OCR 为了实现这一点 我将 Tesseract 与tesseract android tools 项目 http code google com p tesseract androi
  • 新安装的Eclipse和Android SDK。无法让模拟器工作。挂在时钟屏幕上

    我对开发是全新的 我已经安装了 Eclipse 和 Andoid SDK 但是 我无法让模拟器工作 我已经尝试过示例记事本代码和 Hello Android 教程代码 每次我尝试运行任一应用程序时 它都会挂在时钟屏幕上 屏幕上还显示正在充电
  • Android 音乐播放器应用程序:如何为服务中运行的媒体播放器设置完整的侦听器?

    我正在编写一个音乐播放器应用程序 我在服务中有 MediaPlayer 对象 问题是 我不知道如何从服务更新用户界面 例如 我想更新当前歌曲的剩余时间 但是 因为 MediaPlayer 正在服务 我无法设置 MediaPlayer 对象的
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 本地管理的广播接收器泄漏?

    当应用程序被系统杀死时 本地 即使用 LocalBroadcastManager 管理 BroadcastReceiver 是否有可能泄漏 我需要它的具体用例是我想在活动的 onCreate onDestroy 中注册 注销 Broadca
  • Fresco:滚动 RecyclerView 后图像消失

    我有一个 Horizo ntal RecyclerView 每个项目都有一个使用 Facebook Fresco 图像库加载到其中的图像 然而 虽然正确的图像最初是在屏幕上滚动一点时加载的 但当 RecyclerView 进一步滚动时 它就
  • 使用 Box2d(适用于 Android)进行碰撞检测?

    有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗 我无法理解 BBContactListener 以什么方式工作 BBContactListener listener new BBContactListen
  • Android 5 Lollipop 阴影方向或 y 偏移

    是否有可能改变 Y 偏移的阴影方向 现在我有以下布局
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • Android SDK WebView调用Activity

    我试图在单击 WebView 组件内的链接时启动活动 我的Webview已加载到里面Main java我想启动SubActivity java当点击网站内的链接时Main java 另外 如何将参数传递给此活动 Example inspec
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie

随机推荐

  • SQLAlchemy 布尔值与 BOOLEAN 的比较

    我理解了BOOLEAN覆盖 visit name class BOOLEAN Boolean visit name BOOLEAN 控制调度程序选择的访问者方法 def compiler dispatch self visitor kw v
  • Java 编写单元测试,用于当用户在控制台中键入 quit 时退出程序

    我发现很难为这种方法编写单元测试 当用户键入退出命令时 它基本上会退出程序 系统退出类 public class SystemExit public void exit int status System exit status 我的静态方
  • 如何制作圆形按钮?

    我想制作一个圆形按钮 但我不知道该怎么做 我可以制作带有圆角的按钮 但是我怎样才能制作圆形 这是不一样的 请问一下 安卓上可以吗 谢谢 创建一个名为的 xml 文件roundedbutton xml在可绘制文件夹中
  • 为什么 cv2.rectangle 有时返回 np.ndarray,而有时返回 cv2.UMat

    我目前正在研究一些图像的可视化 并发现 opencv 的 cv2 rectangle 的奇怪行为 当输入图像是 np ndarray 时 例如 arr cv2 rectangle 返回一个 np ndarray 并且 arr 是用矩形绘制的
  • 如何禁用默认消息:“您的请求已成功处理”?

    当在我的 portlet 中执行添加 更新操作时 如何为我的插件 portlet 禁用此默认消息 您的请求已成功处理 另外我想为我的自定义配置页面禁用此功能 configuration jsp 这是当我们单击每个 Portlet 右上角出现
  • 这个“你好世界!”是怎么做到的?程序工作?

    int main void return yes no main printf hello world n 0 outputs hello world 但它实际上是如何工作的呢 确实有两件事 函数指针不像其他指针那样取消引用 main ma
  • Powershell - 排除 Get-ChildItem 中的文件夹

    如何排除文件夹 现在我对文件夹名称进行硬编码 但我希望它更加灵活 foreach file in Get ChildItem fileDirectory Exclude folderA folderb 如何排除文件夹 如果您指的是所有文件夹
  • libpcap 在它们下面使用原始套接字吗?

    我对原始套接字和 libcap 的使用感到有点困惑 任何人都可以简单地指出使用两者的优点 我读了几个链接 但是 它让我感到困惑 libpcap 在不同的操作系统上使用不同的机制 在 Linux 上 它使用 PF PACKET 原始套接字或熟
  • 如何根据 Mongodb 中的键删除重复项?

    我在 MongoDB 中有一个集合 其中大约有 约 300 万条记录 我的样本记录看起来像 id ObjectId 50731xxxxxxxxxxxxxxxxxxxx source references id ObjectId 5045xx
  • 为什么“OR 运算”或 OR 条件不可控制?

    在文献中 我读到在 WHERE 子句中使用 OR 条件或运算符会生成一个语句non sargable 我不确定为什么或如何这是真的 任何帮助 将不胜感激 权威优化书籍作者给出了答案SQL Server 查询性能调优 https rads s
  • 创建动画按钮

    我有按钮可以在单击时创建动画吗 使用 Photoshop 我创建了两个图像 启用和禁用 在Windows窗体中插入图片框并单击事件 单击图像从启用变为禁用 但是可以有动画吗 像这样 看来您提到了 WinForms 所以我将解决这个问题 是的
  • 测试元素焦点

    我如何检查这个TextInput组件是否受到关注 我知道该怎么做在网上 https spectrum chat testing library general how to test element is focused 7Eabdca78
  • PHP 循环内循环,选择了选项吗?

    使用 PHP 我在循环中回显表行 如下所示
  • 如何使用 $dateFromString 转换数组中的日期?

    我正在尝试使用 dateFromString 将数组中的时间戳转换为日期 我试图从中转换日期的示例文档 id ObjectId 5cbc5efc8af5053fd8bdca31 ticker ticker currency currency
  • Java分割字符串的表现

    这是我的应用程序中的当前代码 String ids str split 在分析应用程序时 字符串分割花费了不可忽视的时间 另外 split方法采用正则表达式 这在这里是多余的 我可以使用什么替代方法来优化字符串分割 是StringUtils
  • 无法使用 Maven 中的配置文件和属性构建适配器

    我已经使用创建了一个http适配器mfpdev adapter create但我发现 adatper xml 配置文件包含服务器连接配置 我想相应地更改为 dev test produciton 环境 所以我尝试通过更改 pom xml 来
  • 无法启动 Spring Boot 应用程序 - 资源位置不能为空

    第一次尝试springboot 但无法启动 我使用了示例应用程序 https github com spring guides gs spring boot git https github com spring guides gs spr
  • 你在子类中调用 super.finalize() 吗?

    我 在某处 读到过finalize 因为当子类被垃圾收集时 不能保证调用父类 这是否意味着大多数开发人员会覆盖finalize 在子类中并调用super finalize Finalize 不会自动为超类调用 因此 如果您重写 Finali
  • 如何将数组键从大写更改为小写?

    我有一个键为大写的数组 我想将它们更改为小写 我怎样才能做到这一点 我尝试做 data1 array foreach row as key gt value key strtolower str data1 key value data d
  • lib模块和主模块之间如何通信

    建筑工程 我有2个模块 app 应用 box 库模块 PROBLEM 我正在尝试使用一部分app模块来自box模块 问题是app模块依赖于box模块因此我无法指出box模块 因为这会产生循环依赖 如何去app模块方法来自box模块 Or 如