3

Activityは 3 を含むを持っていますFragments。と私は有界を持っていますService

の各呼び出しは本当ですか

getActivity(). bindService(intent, mConnection, Context.BIND_AUTO_CREATE);

Service各フラグメント内では、3 つのクライアントが境界のある?にバインドされます。

4

1 に答える 1

0

私はそれがあなたに制限されたサービスのための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);
    }
于 2012-12-02T14:36:47.790 に答える