Adicionando pontos à resposta aceita:
Veja o uso do IntentService na API do Android. por exemplo:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Para criar um componente IntentService para o seu aplicativo, defina uma classe que estenda o IntentService e, dentro dele, defina um método que substitua onHandleIntent ().
Além disso, consulte o código-fonte do IntentService, seus métodos de construtor e 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;
}
O serviço conjunto de um AsyncTask é uma das melhores abordagens para muitos casos de uso em que a carga útil não é enorme. ou apenas crie uma classe estendendo o IntentSerivce. Na versão 4.0 do Android, todas as operações de rede devem estar em processo em segundo plano, caso contrário, a compilação / construção do aplicativo falhará. thread separado da interface do usuário. A classe AsyncTask fornece uma das maneiras mais simples de disparar uma nova tarefa do thread da interface do usuário. Para mais discussões sobre este tópico, consulte a postagem do blog.
do guia do desenvolvedor do Android :
IntentService é uma classe base de Serviços que manipula solicitações assíncronas (expressas como Intents) sob demanda. Os clientes enviam solicitações por meio de chamadas startService (Intent); o serviço é iniciado conforme necessário, lida com cada Intent, por sua vez, usando um encadeamento de trabalho e para-se quando fica sem trabalho.
Padrão de design usado no IntentService
: Esse padrão de "processador de fila de trabalho" é comumente usado para descarregar tarefas do encadeamento principal de um aplicativo. A classe IntentService existe para simplificar esse padrão e cuidar da mecânica. Para usá-lo, estenda o IntentService e implemente onHandleIntent (Intent). IntentService receberá os Intents, iniciará um thread de trabalho e interromperá o serviço conforme apropriado.
Todas as solicitações são tratadas em um único thread de trabalho - elas podem levar o tempo necessário (e não bloquearão o loop principal do aplicativo), mas apenas uma solicitação será processada por vez.
A classe IntentService fornece uma estrutura direta para executar uma operação em um único encadeamento em segundo plano. Isso permite lidar com operações de longa duração sem afetar a capacidade de resposta da interface do usuário. Além disso, um IntentService não é afetado pela maioria dos eventos do ciclo de vida da interface do usuário, portanto, continua sendo executado em circunstâncias que encerrariam uma AsyncTask.
Um IntentService tem algumas limitações:
Ele não pode interagir diretamente com sua interface de usuário. Para colocar seus resultados na interface do usuário, você deve enviá-los para uma atividade. Solicitações de trabalho são executadas seqüencialmente. Se uma operação estiver em execução em um IntentService e você enviar outra solicitação, a solicitação aguardará até que a primeira operação seja concluída. Uma operação em execução em um IntentService não pode ser interrompida. No entanto, na maioria dos casos
IntentService é a maneira preferida para operações simples em segundo plano
**
Volley Library
Existe a biblioteca chamada volley-library para o desenvolvimento de aplicativos de rede Android.
O código fonte está disponível para o público no GitHub.
A documentação oficial do Android sobre Práticas recomendadas para trabalhos em segundo plano : ajuda a entender melhor sobre serviço intencional, encadeamento, manipulador e serviço. e também executando operações de rede
IntentService is used for short tasks (etc) and a service is for long ones
Onde você leu isso ?