【发布时间】:2017-07-02 14:14:55
【问题描述】:
步骤#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) {
}
}
Step #2. 那么Parent-service将如下:
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应该如何正确实现?
【问题讨论】:
标签: java android generics interface abstract-class