2010-06-17 22 views
5

Quiero crear una aplicación que contiene un Servicio S y una Actividad A. El Servicio S es responsable del preprocesamiento, como preparar los datos que se muestran en la interfaz de usuario de la Actividad A, antes de la Actividad A se invoca.Android - Interacción de actividad y servicio

Quiero ser capaz de invocar el servicio S desde fuera del paquete, dicen desde de otra aplicación de Android Clase de actividad B, realice el procesamiento previo, y luego, cuando los datos están listos, invoque Actividad A.

Mis preguntas son:

  1. ¿Cuál es la mejor forma de compartir datos entre el Servicio S y la Actividad A?
  2. ¿Cómo se puede comunicar la actividad externa B con el Servicio S para determinar si se ha completado con todo su preprocesamiento, y la Actividad A está lista para ser invocada?

Gracias Chris

+0

¿Puedo usar un receptor Broadcast para que el Servicio diga a la actividad externa que se realiza haciendo su preprocesamiento? – Chris

Respuesta

7

¿Cuál es la mejor manera de compartir los datos entre el Servicio S y Actividad A?

Utilice el patrón de vinculación local y haga que la Actividad A se vincule al Servicio S, luego llame al API expuesta del servicio para recuperar lo que sea necesario.

¿Cómo puede la actividad externa B comunicarse con el servicio S a determinar si se ha completado con toda su procesamiento previo y la Actividad A está listo para ser invocado?

Utilice el patrón de encuadernación remota y AIDL. La Actividad B registraría una devolución de llamada definida por AIDL con el Servicio S, que el servicio invocaría cuando fuera apropiado. Ver here y here para un ejemplo.

+0

¡Finalmente tiene sentido! ¡Gracias! – Chris

Cuestiones relacionadas