Ich habe eine bestimmte Situation: startet ein Dienst von einem Broadcast-Empfänger eine Aktivität gestartet. Ich möchte es ermöglichen, dass diese Aktivität zurück zum Dienst kommuniziert. Ich habe mich entschieden, AIDL zu verwenden, um es zu ermöglichen. Alles scheint funktioniert gut, außer bindService()
Methode in onCreate()
der Aktivität aufgerufen. bindService() löst tatsächlich eine Nullzeigerausnahme aus, weil onServiceConnected()
nie aufgerufen wird, während onBind()
Methode des Dienstes ist. Wie auch immer, bindService()
gibt True zurück. Der Dienst ist offensichtlich aktiv, weil er die Aktivität startet. Ich weiß, dass das Anrufen einer Aktivität von einem Dienst seltsam klingen kann, aber das ist leider die einzige Möglichkeit, Spracherkennung in einem Dienst zu haben.onServiceConnected nie nach bindService-Methode
Vielen Dank im Voraus
ja sorry, ich verstehe das Problem könnte besser erklärt werden. NullPointerException wird ausgelöst, da die Remote-Schnittstelle niemals als Remote ausgefüllt wird = IRemoteService.Stub.asInterface (service); in onServiceConnected() wird nie aufgerufen. Sollte bindService den onServiceConnected sofort auslösen? – Matroska
'onServiceConnected()' sollte nicht __ unmittelbar aufgerufen werden, wird es wahrscheinlich eine kleine Verzögerung geben. – MrSnowflake
Sie haben Recht! Die Methode wird nicht sofort aufgerufen. Das war mein Problem. – Matroska