Comunicación entre Servicio y Actividad en Android.

¿Cuáles son las formas de comunicarse entre una actividad y un servicio en Android?

Hoy aprendí a comunicarme enviando un Intent de Activity y respondiendo con BroadcastRecevier.

¿Cuáles son mis otras opciones? ¿Alguien tiene un tutorial / referencia sobre esto?

La respuesta a esta pregunta es:

Hay varias formas para que una actividad se comunique con un servicio y viceversa. Esta sección discute las diferentes formas y da recomendaciones para usar.

5.1. Enlace de actividad al servicio local Si el Servicio se inicia en el mismo proceso que el de Actividad, la Actividad puede vincularse directamente al servicio. Esta es una forma relativamente simple y eficiente de comunicación.

5.2. Uso del receptor También puede utilizar receptores registrados dinámicamente para la comunicación. Por ejemplo, su actividad puede registrar dinámicamente un receptor y el servicio envía los eventos correspondientes.

5.3. AIDL para servicios en un proceso diferente Para enlazar a un servicio que se ejecuta en un proceso diferente, necesita usar Inter Process Communication (IPC), ya que los datos deben enviarse entre diferentes procesos. Para esto necesita crear un archivo AIDL que se parece a una interfaz Java pero que termina con la extensión de archivo .aidl y solo se le permite extender otros archivos AIDL.

Este enfoque es necesario si su servicio debe proporcionarse a otras aplicaciones, de lo contrario, debería preferir un servicio local.

5.4. Envío de datos de Intent y paquete a los servicios El servicio recibe datos del componente de Android inicial y puede utilizar estos datos.

5.5. Manejador y Mensajero Si el servicio debe comunicarse a la actividad, puede recibir un objeto de tipo Mensajero a través de los datos de Intención que recibe de la Actividad. Si el Messenger está vinculado a un Handler en la actividad, el servicio puede enviar objetos de tipo Mensaje a la actividad.

Un Messenger es parcelable, lo que significa que se puede pasar a otro proceso y puede usar este objeto para enviar mensajes al controlador en la actividad.

Messenger también proporciona el método getBinder () que permite pasar un Messenger a la actividad. Por lo tanto, la Actividad puede enviar Mensajes al servicio.

Gracias ahttp://www.vogella.com/articles/AndroidServices/article.html

Respuestas a la pregunta(2)

Su respuesta a la pregunta