活动可以一次绑定到多个服务吗?

时间:2011-11-01 10:45:59

标签: android android-service

我有2个服务的应用程序。 一项服务是显示通知,另一项服务是将SOAP请求发送到Web服务。 是否可以从一个Activity绑定到两个服务?

2 个答案:

答案 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);
    }
}