Este es el trato: Tengo una aplicación de Android que necesita llamar a un servicio web cada X segundos (actualmente 60 segundos). Esta aplicación tiene múltiples pestañas y todas estas pestañas necesitan interactuar con los datos mismos. Uno es un MapView, uno es un ListView y luego el tercero es irrelevante, pero también tendrá que obtener algunos datos globales con el tiempo. El problema es que quiero que mi actividad principal tenga un hilo que se ejecute en segundo plano, obtenga los resultados y luego instruya a ambas actividades del niño en el TabHost para que se actualicen con los datos más recientes. Además, cuando el usuario hace clic en las pestañas y se activan las actividades onCreate/onResume, también me gustaría obligar a volver a dibujar obteniendo los datos más recientes de la actividad principal. Estoy realmente perdido aquí. He intentado esto con un servicio y algunos métodos ghetto estáticos para pasar una instancia de las Actividades al Servicio para llamar a funciones específicas para actualizar sus vistas cada vez que el temporizador disparaba, pero las ralentizaciones eran bastante malas y el código era feo feo feo . ¿Alguna sugerencia?La mejor manera de lograr la comunicación entre actividades en una aplicación Android TabHost
editar: Así que lo implementé como un hilo controlado por temporizador en la actividad tabhost y luego tengo hilos accionados por temporizador en cada actividad secundaria que luego toman los datos (de forma sincronizada) y actualizan su mapa/lista. Es mucho más rápido, pero todavía se siente un poco hack-ish, especialmente la parte en la que estoy llamando a una función personalizada en la actividad de los padres, así:
((MainActivity)getParent()).getNearbyMatches();
Esto añade un elemento de acoplamiento fuerte que no estoy totalmente encantada con, pero desde el punto de vista del rendimiento es mucho mejor de lo que era. Aprecio las respuestas que ya me han dado y haré un poco de investigación en el frente del proveedor de contenido, pero no estoy seguro de querer volver al modelo de servicio.
¡Ojalá supiera cómo hacerlo también!+1 – cakeforcerberus