一个 Activity 可以同时绑定到多个服务吗?

Leo*_*ord 2 android android-service

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

yor*_*rkw 5

是的,单个活动可以绑定多个服务。


G. *_*ike 5

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);
    }
}
Run Code Online (Sandbox Code Playgroud)