我有2个服务的应用程序。 一项服务是显示通知,另一项服务是将SOAP请求发送到Web服务。 是否可以从一个Activity绑定到两个服务?
答案 0 :(得分:4)
是的,单个活动可以绑定多个服务。
答案 1 :(得分:1)
代表绑定的是ServiceConnection
。为了绑定多个服务,您只需要ServiceConnection
的多个实例。
例如,在极不可能的情况下,您想要绑定完全相同的服务MyService
,十次,这样的代码可能会起作用:
private final ServiceConnection connections[] = new ServiceConnection[10];
private final MyService services[] = new MyService[10];
private void connect() {
Context ctxt = getApplicationContext();
for (int i = 0; i < connections.length; i++) {
connections[i] = new ServiceConnection() {
private final int idx = i;
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
services[idx] = ((LocalBinder) binder).getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
services[idx] = null;
}
};
ctxt.bindService(getIntent(), connections[i], Context.BIND_AUTO_CREATE);
}
}