2017-07-19 64 views
1

任何人都可以提供示例代碼來實現使用子組件的這種情況。 在MyActivity中,我需要滿足多個組件的依賴關係。正如您在下面的代碼中看到的,MyActivity需要從compA via module classAcompB via module classB注入。匕首2如何使用子組件將一個類注入到多個組件?

@Component(modules = classA.class) 
interface compA 
{ 
void inject(MyActivity target); 
} 

@Component(modules = classB.class) 
interface compB 
{ 
void inject(MyActivity target); 
} 

我一直在嘗試許多不同的事情很長一段時間。我也閱讀了關於子組件的官方文檔,但無法理解如何爲我的場景做些什麼。請幫忙

回答

2

有很多方法可以做這個東西。包含模塊就是其中之一。我們必須模塊AndroidModules和NetworkModules。

@Module(includes = AndroidModules.class) 
public class NetworkModules { 
//Here two module are marge .... 
} 

現在,在我的組件

@Component(modules = NetworkModules.class) 
public interface NetworkComponent { 
    void inject(MyActivity activity); 
} 
+0

感謝您的回答。如果我想讓我的組件或模塊獨立,有什麼辦法嗎? –

1

你可以嘗試像這樣,

@Component(
    modules = { 
     ApplicationModule.class, 
     MainModule.class 
    } 
) 
public interface compA 
{ 
void inject(MyActivity target); 
} 
+0

謝謝。以前我嘗試過,但這種方法的問題在於它創造了緊密的耦合。我想讓我的組件獨立。 –