2015-09-07 74 views
3

敷設渠道如何LIB模塊和主模塊

之間通信的I有2個模塊:

  • app(應用)
  • box(庫模塊)

問題

我試圖使用來自box模塊的app模塊的一部分。 問題是app模塊依賴於box模塊,因此我無法從box模塊中指出,因爲它會創建循環依賴。

如何從box模塊獲得app模塊方法?

或者

如何告知一些接收機app模塊,有一些數據來獲得?

+0

你可能想從這裏獲取一些線索 - http://stackoverflow.com/questions/6974696/starting-activity-from-android-library-project?rq=1 – random

回答

3

您不能直接調用取決於您的庫的模塊。這種依賴會打敗圖書館的目的。但是你可以在你的Box模塊中定義一個接口,這個庫的哪些客戶端必須實現自動運行。

例子: 你的盒子模塊定義一個接口

interface ThereIsSomeDataToGet(){ 
    void doSomething(); 
} 

而且您的應用模塊,可以撥打

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

現在盒模塊中,你有一個回調到您的應用程序模塊,沒有任何硬性依賴關係,並且當庫中有一些新數據時,您只需撥打

ThereIsSomeDataToGet.doSomething(); 
+0

如果活動在Box.registerCallback之後重新啓動(new ThereIsSomeDataToGet (){...})和ThereIsSomeDataToGet.doSomething();之前? – Exigente05