tengo una situación particular: un servicio iniciado por un receptor de radiodifusión comienza una actividad. Quiero hacer posible que esta actividad se comunique nuevamente con el servicio. He elegido usar AIDL para hacerlo posible. Todo parece funcionar bien excepto por el método bindService()
llamado en onCreate()
de la actividad. bindService(), de hecho, una excepción de puntero nulo porque onServiceConnected()
Nunca se llama mientras onBind()
método del servicio es. De todos modos, bindService()
devuelve verdadero. El servicio está obviamente activo porque inicia la actividad. Sé que llamar a una actividad de un servicio puede sonar extraño, pero desafortunadamente esta es la única forma de tener reconocimiento de voz en un servicio.onServiceConnected llamada después método bindService
Gracias de antemano
sí, lo siento, entiendo que el problema podría explicarse mejor. Se lanza NullPointerException porque la interfaz remota nunca se llena como remote = IRemoteService.Stub.asInterface (service); en onServiceConnected() nunca se llama. ¿Debería bindService desencadenar el onServiceConnected inmediatamente? – Matroska
'onServiceConnected()' no se debe llamar __inmediatamente__, probablemente habrá un pequeño retraso. – MrSnowflake
¡Tienes razón! El método no se llama inmediatamente. Ese fue mi problema – Matroska