En Android: ¿Cómo llamar a la función de la actividad de un servicio?

Tengo una actividad (A) y un servicio (S) que comienza por A como esto:

Intent i = new Intent(); i.putExtra("updateInterval", 10); i.setClassName("com.blah", "com.blah.S"); startService(i); 

A tienen una función como ésta en A:

 public void someInfoArrived(Info i){...} 

Ahora quiero llamar a A.someInfoArrived (i) desde dentro de S. Intent.putExtra no tiene ninguna versión donde podría pasar una referencia de objeto, etc … Por favor, ayuda!

PS: La otra manera alrededor (una encuesta S para la nueva Info) no es lo que necesito. Encontré suficiente información sobre cómo hacer eso.

Una opción es cambiar de startService() a bindService() y utilizar el patrón de enlace local. A continuación, debe tener A llamar a un método en S en algún momento para registrar un método de escucha o devolución de llamada. Entonces, S tendrá algo que puede llamar a A cuando llegue alguna información. Puedes ver un ejemplo de proyecto para eso aquí .

Alternativamente, puede dejar startService() en su lugar y usar una Intent difusión para que S diga A acerca de alguna información que llega. Puede ver un ejemplo de proyecto que demuestra tal Intent difusión aquí .

  • El punto de interrupción en servicio no funciona
  • android - utiliza la cámara desde el servicio de fondo
  • ¿Cuál es la forma correcta de detener un servicio que se está ejecutando como primer plano
  • Google Cloud Messaging - GCM - SERVICE_NOT_AVAILABLE
  • Detectar el evento "botón de inicio presionado" en el servicio android que muestra una interfaz de usuario (similar a los cabezales de chat de Facebook)
  • Vinculante para ejecutar el servicio (después de finish ()) / callback Handler
  • Iniciar el servicio en el arranque, pero no toda la aplicación de Android
  • Una forma más eficiente de actualizar la interfaz de usuario del servicio que las intenciones?
  • Depuración de fallos de servicio
  • ResultReceiver no sobrevive a la rotación de la pantalla
  • Temporizador de cuenta atrás Android en segundo plano
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.