Android que envía periódicamente datos del servicio a la actividad

Tengo una aplicación que inicia el servicio en el primer lanzamiento. Después de eso extrae datos del servidor periódicamente.

  1. He abierto mi actividad y si hay botón de actualización, ya tengo el servicio que ya está recogiendo datos en el fondo en ese momento quiero desactivar el botón y tan pronto como se carga nuevos datos Tengo que mostrarlo en la actividad y activar la actualización botón.

  2. Si la actividad no se está ejecutando, debe mostrar notificación.

Así que el segundo punto fue el más fácil y hecho. Estoy atascado en el punto 1. ¿Cómo enviar periódicamente datos a la actividad de servicio? Estoy utilizando la base de datos para almacenar los datos.

¿Alguna ayuda en esto?

One Solution collect form web for “Android que envía periódicamente datos del servicio a la actividad”

  • Puedes enviar tus mensajes a tu Messenger Actividad para que reaccione tan pronto como el servicio detecte nuevo contenido (consulta esta sección de ayuda de desarrolladores de android en Actividad / Servicio de mensajería).

A continuación, se muestran ejemplos de mensajería bidireccional (de servicio a actividad y de actividad a servicio). Citando el documento:

Puede ver un ejemplo de cómo proporcionar mensajería bidireccional en los ejemplos MessengerService.java (servicio) y MessengerServiceActivities.java (cliente).

Aquí están las partes relevantes.

Manejador entrante en la actividad:

  /** * Activity Handler of incoming messages from service. */ class IncomingHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case MessengerService.MSG_SET_VALUE: mCallbackText.setText("Received from service: " + msg.arg1); break; default: super.handleMessage(msg); } } } /** * Activity target published for clients to send messages to IncomingHandler. */ final Messenger mMessenger = new Messenger(new IncomingHandler()); 

En el servicio, mostrando sólo las partes relevantes:

 /** * Handler of incoming messages from clients. */ class IncomingHandler extends Handler { @Override public void handleMessage(Message msg) { //obtain Activity address from Message Messenger mClient=msg.replyTo; try { // try to send it some mValue mClient.send(Message.obtain(null,MSG_SET_VALUE, mValue, 0)); } catch (RemoteException e) { // The client is dead. Remove it mClient=null; } } } /** * Target we publish for clients to send messages to IncomingHandler. */ final Messenger mMessenger = new Messenger(new IncomingHandler()); 
  • También puede bind a su servicio de su actividad y periódicamente llamar a uno de su método de servicio para comprobar si hay contenido nuevo. Para ello, si su servicio es otra aplicación, debe utilizar aidl (esto es más difícil). Si está en el mismo paquete, te aconsejo que utilices el " enlace de servicio local "
  • SQLite onUpgrade ()
  • ¿Cómo iniciar la actividad en el adaptador?
  • Android - ¿cómo startActivity o startActivityForResult afectará el flujo lógico de la actividad actual?
  • Comparar la actividad de getCallingActivity con otra
  • LeftNavBar crea una barra negra en la parte superior de la actividad
  • Cantidad máxima de actividades en la aplicación? Androide
  • Cambiar el color de las pestañas de navegación mediante programación
  • Android Context sin estar en una actividad? ¿Y otra programación sin actividad?
  • Cómo llamar a recreate ()?
  • Establecer dinámicamente el color del tema
  • Serialización de Android / Transferencia de objetos y devolución
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.