您可以从Activity 到bind 到service 并创建一个service connection。这样你就有instance 的service 进行交流。
在这里查看我的回答How to pass a handler from activity to service关于如何绑定到服务并建立服务连接。
除此之外,在您的服务中定义一个interface
public interface OnServiceListener{
public void onDataReceived(String data);
}
在service 中添加set Listener 方法,从Activity 注册监听器
private OnServiceListener mOnServiceListener = null;
public void setOnServiceListener(OnServiceListener serviceListener){
mOnServiceListener = serviceListener;
}
接下来,在你的Activity中实现Listener接口
公共类 MainActivity 扩展 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 方法将数据传递给 Activity。
if(mOnServiceListener != null){
mOnServiceListener.onDataReceived("your data");
}