0
ステップ#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) {
}
}
ステップ#2:は、インタフェースServiceConnection
を実装するために必要。次のようにはその後親サービスは次のようになります。
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