Hilo o servicios

Estoy confundido entre hilo y servicio en android. Si tengo que descargar algún servidor de archivos. Puede ser varios archivos a la vez. ¿Qué debo elegir en esta situación hilo o servicios?

5 Solutions collect form web for “Hilo o servicios”

Hacer cosas en un servicio no lo hace funcionar en segundo plano. Tienes que crear un hilo en tu servicio y esperar a que se complete la descarga.

Si está utilizando un hilo local para una actividad, tendrá problemas para dejar la actividad, enviarla al fondo o una interrupción debido a una llamada entrante, etc. Esto puede causar que su aplicación sea eliminada por el sistema operativo para liberar memoria. En este caso, el hilo se pierde y no se puede reiniciar y hacer que su aplicación se bloquee.

Si crea un servicio no es probable que se maten, entonces sólo un hilo y puede especificar el sistema operativo para reiniciar el servicio después de que sea asesinado por el sistema operativo. Esto hace que el servicio sea una opción más segura para descargas muy largas. Yo uso un servicio en una de mis aplicaciones para descargar un archivo de 20 MB y en este servicio crear un hilo que hace la descarga.

Un servicio sólo le ayuda a encapsular la descarga y la desacopla de la actividad y le da otro estado en el sistema operativo que evitará que el hilo desaparezca por falta de memoria.

¿Qué debo elegir en esta situación hilo o servicios?

No es un "o". Es un "y". Utiliza un hilo de fondo y un servicio.

Un servicio es "en el fondo" desde un punto de vista de la interfaz de usuario, en que no tiene interfaz de usuario. Un servicio no está automáticamente "en segundo plano" desde el punto de vista de subprocesamiento, ya que onCreate() , onDestroy() , onStart() y onBind() son todos llamados en el hilo de la aplicación principal, el mismo hilo compartido por todas las actividades De esta solicitud. Cualquier cosa de larga duración, como una descarga, debe realizarse fuera del hilo principal de la aplicación, como el uso de AsyncTask .

Si sus descargas deben continuar incluso si la actividad que las ha provocado se destruye, debe utilizar un servicio, con el servicio utilizando un AsyncTask o un subproceso de fondo para completar la descarga. Incluso mejor es utilizar un IntentService , que combina un servicio regular con un hilo de fondo.

El hilo está bien para realizar una tarea en segundo plano para una aplicación. Si desea utilizar este servicio para varias aplicaciones, desearía utilizarlo.

Si desea proporcionar una interfaz para que otras aplicaciones se comuniquen con su actividad de descarga: servicio. Si la descarga sólo debería ejecutarse en segundo plano para permitir al usuario interactuar con la interfaz de usuario.

Su pregunta ya está en la documentación . Compruebe la columna derecha.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.