我有一个包含 3 个 Fragments
的 Activity
。我有一个有界的 Service
。
是不是每次调用
getActivity(). bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
在每个 Fragment 中将导致 3 个客户端绑定(bind)到有界 Service
?
最佳答案
我认为它会为您提供三个有限服务客户端。
你可以做些什么来确保你只有一个客户服务是
重写 bindService 方法,如下所示。注意:有了这个,您的 Activity 只有一个有界服务。
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);
}
关于android - android 中具有有限服务的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669494/