バインディングを介して別のサービスからの参照を使用する必要がある IntentService があります。
public class BaseIntentService extends IntentService implements ServiceConnection {
protected NetworkApi network;
public BaseIntentService() {
super("BaseIntentService");
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
network = ((NetworkApiBinder) service).getApi();
// never be invoked
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onCreate() {
super.onCreate();
bindService(new Intent(this, NetworkApi.impl), this, BIND_AUTO_CREATE);
}
@Override
public void onDestroy() {
super.onDestroy();
unbindService(this);
}
@Override
protected void onHandleIntent(Intent intent) {
// network always null!!!
}
}
しかし、この onServiceConnected のようなバインディングを使用しているときは、決して呼び出されません。IntentService がバインド パターン用に設計されていないことは知っていますが、そのようなタスクに共通の解決策があるのでしょうか?
ありがとう!