У меня есть IntentService, которые должны использовать ссылку из другой службы посредством связывания:IntentService и Binding Pattern
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 не предназначен для шаблона привязки, но может быть, есть общее решение для таких задач?
Спасибо!
CommonsWare sir: Почему андроид препятствует связыванию IntentService с другими компонентами? – Kushal
@ Kushal: Потому что «IntentService» должен быть недолговечным (от нескольких секунд до минуты или около того). «IntentService» автоматически уничтожается, когда 'onHandleIntent()' выполняет все выдающиеся команды. – CommonsWare