NullPointerException beim aufrufen der service in onResume
Ich bin versucht, einen Anruf an einen service, und basierend auf der Antwort, leiten Sie den Benutzer zu einer anderen Aktivität (login).
Wenn ich warten um dies zu tun, bis sagen, eine Schaltfläche klicken, dann funktioniert es (da der Dienst gebunden ist), aber wenn ich es Tue, onResume, dann bekomme ich die folgende exception:
ERROR/AndroidRuntime(2226): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to resume activity {...MyActivity}:
java.lang.NullPointerException
und mein code ist:
FooService fooService;
@Override
protected void onStart() {
super.onStart();
Intent intent = new Intent(this, FooService.class);
bindService(intent, fooServiceConnection, Context.BIND_AUTO_CREATE);
}
@Override
protected void onResume() {
//I would assume the service would have bound by now?
super.onResume();
doSomething();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was macht Sie denken, dass
fooService
existiert an dem Punkt, deronResume()
?Den Aufruf
bindService()
asynchron ist. Es passiert, wenn es passiert. Sie können nichtdoSomething()
bisonServiceConnected()
genannt wird, undonServiceConnected()
kann nicht aufgerufen wurden, die von der ZeitonResume()
genannt wird.Und, wenn
get()
auffooService
tut, Netzwerk-I/O, Sie müssen schreiben Sie Ihre app zu bewegen, dass Sie die wichtigsten application-thread-und auf einen hintergrund-thread.IntentService
empfängt einen Befehl, um die Datei herunterzuladen, dann downloads und können die Aktivität wissen, die Ergebnisse, wenn der download abgeschlossen ist: github.com/commonsguy/cw-android/tree/master/Service/Downloader ", wenn ich abhängen, der service, wie kann ich einen Anruf an, wenn es fertig ist?" -- nennen Sie es vononServiceConnected()
.