如何在lib模块和主模块之间进行通信

时间:2015-09-07 12:26:13

标签: android

敷设渠道

我有2个模块:

  • app(申请)
  • box(图书馆模块)

问题

我正在尝试使用app模块中box模块的一部分。 问题是app模块依赖于box模块,因此我不能指向box模块,因为这会产生循环依赖。

如何从app模块获取box模块方法?

或者

如何通知app模块中的某个接收器有一些数据可以获取?

修改

我以第3个模块common结束,该模块保持模块appbox的交集。

1 个答案:

答案 0 :(得分:6)

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

实施例: 在Box模块中定义一个接口

interface ThereIsSomeDataToGet(){
   void doSomething();
}

在您的应用模块中,您可以致电

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

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

ThereIsSomeDataToGet.doSomething();