,無縫不緊密耦合的應用程序代碼通信的最簡單的方法,可以嘗試使用events
。我最喜歡的是EventBus - android library
。這裏是你如何能做到這一點:
添加到您的build.gradle
文件(模塊級)
compile 'org.greenrobot:eventbus:3.0.0'
接下來,創建一個Plain Old Java Object
(POJO)來表示您的活動!
public class ServiceConnectedEvent{
private boolean isServiceConnected;
ServiceConnectedEvent(boolean isConnected){
this.isServiceConnected = isConnected;
}
public boolean isServiceConnected{
return this.isServiceConnected;
}
}
接下來,在你的服務,這將作爲publisher
,發佈這樣一個事件:
EventBus.getDefault().post(new ServiceConnectedEvent(true));
現在,在您想通知的服務連接狀態,您可以在類註冊它,使之成爲subscriber
這樣的:
EventBus.getDefault().register(this);
真正得到你們班的通知,添加這個方法:
public void onEvent(ServiceConnectedEvent event){
if(event.isServiceConnected()){
//do what you need when service is connected
}
}
請記住,你可以傳回任何你想要的東西,就像你選擇的變量!
如果你是一個活動或片段裏面,可以unregister
事件裏面onDestroy
:
@Override
public void onDestroy(){
super.onDestroy();
EventBus.getDefault().unregister(this);
}
這應該使你的服務或任何其他類別之間方便您的溝通!
我希望你得到它的工作 - 祝你好運,快樂的編碼!
用一個小例子編輯它,說明我想說什麼。 – h3X3n