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

Jak*_*ubW 6 android

敷设渠道

我有2个模块:

  • app (应用)
  • box (图书馆模块)

问题

我试图appbox模块中使用模块的一部分.问题是app模块依赖于box模块,因此我无法从box模块指向,因为这将创建循环依赖.

如何appbox模块中获取模块方法?

要么

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

小智 7

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

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

interface ThereIsSomeDataToGet(){
   void doSomething();
}
Run Code Online (Sandbox Code Playgroud)

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

Box.registerCallback(new ThereIsSomeDataToGet(){...})
Run Code Online (Sandbox Code Playgroud)

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

ThereIsSomeDataToGet.doSomething();
Run Code Online (Sandbox Code Playgroud)