私Activity
は 3 を含むを持っていますFragments
。と私は有界を持っていますService
。
の各呼び出しは本当ですか
getActivity(). bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
Service
各フラグメント内では、3 つのクライアントが境界のある?にバインドされます。
私はそれがあなたに制限されたサービスのための3つのクライアントを与えると思います。
クライアントサービスが1つしかないことを確認するためにできることは
以下に示すように、bindServiceメソッドをオーバーライドします。注:これを使用すると、アクティビティの制限付きサービスは1つだけになります。
private IBinder binder;
private ComponentName name;
private ArrayList<ServiceConnection> conns = new ArrayList<ServiceConnection>();
@Override
public boolean bindService(Intent service, final ServiceConnection conn, int flags) {
conns.add(conn);
if(binder != null)
conn.onServiceConnected(name, binder);
return super.bindService(service, new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName arg0) {
for(ServiceConnection con : conns)
con.onServiceDisconnected(arg0);
}
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
name = arg0;
binder = arg1;
conn.onServiceConnected(arg0, arg1);
}
}, flags);
}