您可以bind
至service
從Activity
創建一個service connection
。因此,您將有instance
的service
進行通信。
在此處查看我的答案How to pass a handler from activity to service關於如何綁定到服務並建立服務連接。
從這個
除此之外,已經於您的服務定義的interface
public interface OnServiceListener{
public void onDataReceived(String data);
}
添加set Listener
方法service
從註冊監聽Activity
private OnServiceListener mOnServiceListener = null;
public void setOnServiceListener(OnServiceListener serviceListener){
mOnServiceListener = serviceListener;
}
接下來,在你的活動實施監聽器接口
public class MainActiv兩者均延伸ActionBarActivity 實現CustomService.OnServiceListener {
@Override
public void onDataReceived(String data) {
}
}
其次,在建立業務連接,註冊偵聽
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
customService = ((CustomService.LocalBinder) iBinder).getInstance();
customService.setOnServiceListener(MainActivity.this);
}
現在,當您收到的數據服務的數據傳遞到活動通過onDataReceived
方法。
if(mOnServiceListener != null){
mOnServiceListener.onDataReceived("your data");
}
完美地工作!正是我需要的。謝謝! –