2016-10-26 192 views
0

我想使用事件總線從我的圖書館通知事件到服務。 到現在爲止我一直在使用EventBus這樣的:圖書館android回撥

public abstract class MLibraryClass{ 

.... 
EventBus.getDefault().post(event); 
... 

}

public class MService{ 
... 
public void onEvent(Event event){ 
//do stuff 
} 

}

,現在我已經爲了使用回調創建的接口。問題是回調有一個空引用,我不知道如何實例化它。

接口:

public Interface MInterface{ 
    void doStuff(Event event); 
} 

圖書館類:

public abstract class MLibraryClass{ 
... 
MInterface interface; 
Event event; 
... 
public void onEvent(){ 
    interface.doStuff(event) 
} 
... 

}

服務:

public class MService implements MInterface{ 
... 
void doStuff(Event event){ 
    //some code 
} 
... 

}

回答

0

你需要有一種方法,你MLibraryClass像下面,做這樣的事情:

public abstract class MLibraryClass{ 
... 
MInterface interface; 
Event event; 
... 
public void onEvent(){ 
    if(interface!=null) interface.doStuff(event) 
} 

public void setInterace(MyInterface myInterface){ 
    this.interface = myInterface; 
} 
... 

的Android從您正在訪問MLibraryClass的地方,設置界面。