Pregunta

En mi aplicación de Android, un servicio se ejecuta en segundo plano y registra las lecturas de GPS en una base de datos . El usuario ve una Actividad que los presenta con botones de opción . También me gustaría registrar su botón de opción seleccionado actualmente en la base de datos.

¿Cómo puedo acceder al objeto del botón de opción desde el Servicio?

¿Fue útil?

Solución

Un método sencillo para hacerlo (suponiendo que su Servicio se ejecute en el mismo proceso que la Actividad) es usar un archivo de preferencias compartido. La actividad puede escribir en el archivo de preferencias cada vez que se cambia un botón de opción, y el Servicio puede registrar un oyente en las preferencias o verificar el estado cada vez que escribe en la base de datos.

La forma más complicada que evita las preferencias sería que el servicio se inicie con Context.startService () (para que permanezca ejecutándose incluso si la Actividad no está disponible) y luego que la Actividad llame a Context.bindService () (iniciar el servicio si no se está ejecutando) para devolver un código auxiliar de IBinder con el que pueda comunicarse. Para este enfoque, le recomiendo que mire el Demos de API de servicio .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top