Шаг №1. Требуется реализовать интерфейс ServiceConnection
:Интерфейс реализации 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) {
}
}
Шаг # 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
?
Вопрос о том, как сделать обобщенную реализацию привязки во избежание дублирования кода. – DukeSpontaneous