Agregar puntos a la respuesta aceptada:
Vea el uso de IntentService dentro de la API de Android. p.ej:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Para crear un componente IntentService para su aplicación, defina una clase que extienda IntentService y, dentro de ella, defina un método que anule onHandleIntent ().
Además, vea el código fuente del IntentService, su constructor y métodos de ciclo de vida como onStartCommand ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
El servicio conjunto de AsyncTask es uno de los mejores enfoques para muchos casos de uso donde la carga útil no es enorme. o simplemente cree una clase que extienda IntentSerivce. Desde la versión 4.0 de Android, todas las operaciones de red deben estar en proceso en segundo plano; de lo contrario, la compilación / compilación de la aplicación falla. hilo separado de la interfaz de usuario. La clase AsyncTask proporciona una de las formas más simples de disparar una nueva tarea desde el hilo de la interfaz de usuario. Para más discusión sobre este tema, vea la publicación del blog
de la guía de desarrolladores de Android :
IntentService es una clase base para Servicios que maneja solicitudes asíncronas (expresadas como Intents) a pedido. Los clientes envían solicitudes a través de llamadas startService (Intent); el servicio se inicia según sea necesario, maneja cada Intento, a su vez, utilizando un hilo de trabajo, y se detiene cuando se queda sin trabajo.
Patrón de diseño utilizado en IntentService
: Este patrón de "procesador de cola de trabajo" se usa comúnmente para descargar tareas del hilo principal de una aplicación. La clase IntentService existe para simplificar este patrón y cuidar la mecánica. Para usarlo, extienda IntentService e implemente onHandleIntent (Intent). IntentService recibirá las intenciones, lanzará un subproceso de trabajo y detendrá el servicio según corresponda.
Todas las solicitudes se manejan en un único subproceso de trabajo: pueden tardar tanto tiempo como sea necesario (y no bloquearán el bucle principal de la aplicación), pero solo se procesará una solicitud a la vez.
La clase IntentService proporciona una estructura sencilla para ejecutar una operación en un único subproceso en segundo plano. Esto le permite manejar operaciones de larga duración sin afectar la capacidad de respuesta de su interfaz de usuario. Además, un IntentService no se ve afectado por la mayoría de los eventos del ciclo de vida de la interfaz de usuario, por lo que continúa ejecutándose en circunstancias que cerrarían una AsyncTask.
Un IntentService tiene algunas limitaciones:
No puede interactuar directamente con su interfaz de usuario. Para poner sus resultados en la interfaz de usuario, debe enviarlos a una Actividad. Las solicitudes de trabajo se ejecutan secuencialmente. Si una operación se está ejecutando en un IntentService y le envía otra solicitud, la solicitud espera hasta que finalice la primera operación. Una operación que se ejecuta en un IntentService no se puede interrumpir. Sin embargo, en la mayoría de los casos
IntentService es la forma preferida de operaciones simples en segundo plano
** **
Biblioteca Volley
Existe la biblioteca llamada volley-library para desarrollar aplicaciones de red de Android.
El código fuente está disponible para el público en GitHub.
La documentación oficial de Android para Mejores prácticas para trabajos en segundo plano : ayuda a comprender mejor el servicio intencionado, el hilo, el controlador, el servicio. y también realizar operaciones de red
IntentService is used for short tasks (etc) and a service is for long ones
Dónde leíste eso ?