构造
我有 2 个模块:
app
(应用程序)box
(库模块)
问题
我正在尝试使用 box
模块中的部分 app
模块。
问题是 app
模块依赖于 box
模块,因此我不能指向 box
模块,因为那样会产生循环依赖。
如何从 box
模块获取 app
模块方法?
或者
如何通知app
模块中的一些接收者有一些数据要获取?
编辑
我以第三个模块 common
结束,它包含模块 app
和 box
的交集。
最佳答案
您不能直接调用依赖于您的库的模块。这种依赖会破坏图书馆的目的。但是您可以在 Box 模块中定义一个接口(interface),该库的客户端必须实现该接口(interface)才能正常运行。
例子: 在您的 Box 模块中定义一个接口(interface)
interface ThereIsSomeDataToGet(){
void doSomething();
}
在你的应用模块中,你可以调用
Box.registerCallback(new ThereIsSomeDataToGet(){...})
现在在 box 模块中你有一个回调到你的应用程序模块,没有任何硬依赖,当库有一些新数据时,你只需要调用
ThereIsSomeDataToGet.doSomething();
关于android - lib模块和主模块之间如何通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438751/