2011-11-01 92 views

回答

4

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

+0

如何做到这一点的伴侣? –

0

这是表示绑定的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); 
    } 
} 
+0

你将如何解除特定的ServiceConnection?我有多个ServiceConnections绑定到Activity,我想解除绑定特定的一个,但找不到方法? – FARID

+0

Context.unbindService –

相关问题