Si un servicio vinculado o hilos personalizados cuando descarga algo?

Estoy trabajando en un proyecto de Android, en el que necesito cargar algunas imágenes en un GridView. Las imágenes podrían estar en la memoria caché, si falta la memoria caché, a continuación, consulta el servidor de Internet. Mi diseño es utilizar dos hilos para realizar la tarea de carga. Un hilo para leer el caché y un hilo para la descarga. Así que hay 3 hilos, incluyendo la interfaz de usuario. Cada uno de ellos tiene su propia cola de mensajes y utiliza Handler para comunicarse.

Mi pregunta es si debo usar el servicio obligado en esta situación en su lugar? En realidad me he dado cuenta del diseño de arriba y no parece nada malo, pero GC está trabajando muy duro, que se puede deducir de la logcat.

Otro problema es que existen varios hilos cuando utilizo DDMS para supervisar los subprocesos. Esto se debe a que el mismo mecanismo de carga se utiliza en varias Actividades. He dejado que los hilos de salir de su bucle de mensajes mientras onPause () se llama, estoy seguro de que sólo dos de ellos están vivos en el mismo tiempo. Pero puedo ver todos ellos en DDMS. (BTW, ¿por qué los hilos todavía existen? He dejado thread = null;)

Así que en una palabra, mi pregunta es: ¿Podría esta tarea de carga beneficiarse de un servicio vinculado?

Entonces, ¿por qué está utilizando múltiples hilos? Necesita cargar una imagen en segundo plano, y cuando termine, muéstrela en la interfaz de usuario. Realmente no importa a la interfaz de usuario de donde provienen las imágenes. Y el uso de varios hilos no lo hace más rápido, sólo consume más memoria. Simplemente utilice un solo hilo de fondo: primero golpea el escondrijo, después transfiere si no golpea.

Los servicios son para cuando quieres hacer algo que no necesita una interfaz de usuario. Si necesita actualizar la interfaz de usuario en tiempo real, un servicio no tiene mucho sentido.

  • Diferencia entre los receptores de servicio y difusión en android
  • Iniciar servicio desde la notificación
  • Cómo iniciar una tarea de fondo de larga ejecución en el servicio de Android
  • Grabación de errores en vídeos android
  • PopUp diálogo Android de hilo de fondo
  • 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)
  • Android - widget de actualización sobre el servicio con datos de la red. ¿El mejor enfoque?
  • Cómo pasar valor de cadena de servicio a la actividad en android?
  • Cómo utilizar NotificationCompat.Builder y startForeground?
  • Actualizar Android ListView en Widget
  • Actualización de Textview en una actividad con servicio local
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.