如何解除特定服务的绑定?

时间:2014-10-16 12:49:58

标签: android service binding unbind

我有一个绑定服务,它反过来使用相同的ServiceConnection对象绑定多个服务。在onServiceConnected中,我保存了Map中每个服务的ComponentName和Binder,以便我可以单独使用它们。在某一点上,我想分开解开其中一些服务。有没有办法在Android中执行此操作?

我能够找到取消绑定服务的唯一方法是使用unbindService(ServiceConnection),但我不认为我可以使用它取消绑定特定服务。

为什么这似乎不受支持?有没有缺点?

1 个答案:

答案 0 :(得分:0)

这是绑定和取消绑定服务的示例代码

i = new Intent(this, YourService.class)

protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
    Log.d(LOG_TAG, "onServiceConnected");
}

@Override
public void onServiceDisconnected(ComponentName name) {
    Log.d(LOG_TAG, "onServiceDisconnected");
}
}

public void start() {

mContext.bindService(i, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(i);
}

public void stop() {
mContext.stopService(new Intent(mContext, ServiceRemote.class));
mContext.unbindService(mServerConn);
}