2010-07-12 15 views
10

Tengo una aplicación en la que desea actualizar el (actividad de la lista para ser precisos) La actividad sólo cuando la actividad de servicio se encuentra en primer plano (activo)Actualizar una actividad de servicio cuando se activa

puedo usar Intención ListActivity pero el problema es que esto genera actividad incluso cuando está en segundo plano.

También consideré el uso de registerDataSetObserver en ListAdapter, pero eso exige que el cursor se actualice. La actualización del Cursor del servicio externo puede no ser factible.

¿Tenemos una solución genérica para esto?

Respuesta

20

¿Tenemos una solución genérica para este ?

Probablemente una docena de ellas. Aquí están algunos:

  • tener la actividad registrar un objeto detector con el servicio en onResume() y extraerla en onPause()
  • Enviar una emisión privada, recogido por la actividad a través de registerReceiver() cuando está en el primer plano
  • tener la actividad suministrar un "número pendiente" al estilo de PendingIntent al servicio
  • Utilice un ResultReceiver
  • Utilice un ContentProvider, con la actividad se sostiene sobre una Cursor del proveedor, y el servicio de actualización del proveedor de

This set of projects demuestra los tres primeros, en el contexto de los servicios remotos.

+0

Gracias. Acabo de usar tu segunda opción y funcionó muy bien. –

0

La mejor solución es tener un lugar centralizado. Considero que esta es la mejor solución. Mira esto:

click here

Cuestiones relacionadas