我有一个绑定服务,它反过来使用相同的ServiceConnection对象绑定多个服务。在onServiceConnected中,我保存了Map中每个服务的ComponentName和Binder,以便我可以单独使用它们。在某一点上,我想分开解开其中一些服务。有没有办法在Android中执行此操作?
我能够找到取消绑定服务的唯一方法是使用unbindService(ServiceConnection),但我不认为我可以使用它取消绑定特定服务。
为什么这似乎不受支持?有没有缺点?
答案 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);
}