步骤1.实现接口ServiceConnection所需的
public class ServiceBinding<T extends ParentService<T>> implements ServiceConnection {
public T bindedService;
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
// Warning: Type safety: Unchecked cast from IBinder to ChatService<T>.LocalBinder
bindedService = ((T.LocalBinder) service).getService();
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
}Parent-service的步骤2.将如下所示:
public abstract class ParentService<T extends ParentService<T>> extends Service {
public class LocalBinder extends Binder {
public T getService() {
return (T) T.this; // Warning: Unchecked cast from ChatService<T> to T
}
};
}问题:这样的解决方案可以接受吗?
如何正确地实现ServiceConnection?
发布于 2017-02-24 17:56:03
你可以这样实现-
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
LocalBinder binder = (LocalBinder) service;
service = binder.getService();
boundVal = true;
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
boundVal = false;
}
};boundVal是“unbindservice”的触发器。传递以连接为参数的边界。
一旦客户端服务器连接分别建立或断开,则调用onServiceConnected()和onServiceDisconnected()。对于onServiceConnected()方法,这将传递一个IBinder对象,其中包含客户端与服务交互所需的信息。干杯!
https://stackoverflow.com/questions/42223625
复制相似问题