Então chegamos ao nosso terceiro dos quatros componentes principais do Android: os serviços. Você deve criar um serviço para tarefas que precisam ser executados, mas que não interagem com o usuário diretamente, geralmente sendo executados em plano de fundo. Geralmente, uma atividade pode iniciar um serviço, e este serviço continuará rodando mesmo depois da atividade, ou até mesmo o aplicativo ser fechado.
Como iniciar um serviço
Existem 3 formas de executar um serviço:
1. Iniciar de forma explícita: a partir de um contexto, executar o método startService(). A atividade mandará o comando para executar o serviço, mas não espere retorno direto do mesmo com a atividade; Este será o foco do tutorial de hoje.
2. Programar a execução: Os serviços que são programados para ser executados são chamados de Job Services, e utiliza-se de um Job Scheduler para ser executado;
3. Atrelado com Atividade: semelhante ao primeiro, com a diferença que o mesmo pode se comunicar com a atividade que o iniciou;
A imagem abaixo mostra o ciclo de vida de um serviço para os casos 1 e 3:
Ok, mas como iniciamos os serviços?
Para o caso 1, nós utilizamos de um Intent, e de forma muito semelhante de como usamos para chamar outra atividade, nós usaremos um Intent para chamar um serviço. Observe o código abaixo:
Intent myIntent = new Intent(this, MyIntentService.class);
startService(myIntent);
Supondo que o código acima esteja em um método de uma Activity e que exista uma classe chamada MyIntentService, é assim que iniciaremos um serviço.
Criando a classe Serviço
Um serviço iniciado por Intent irá herdar a classe IntentService. Nela devemos sobrescrever o método onHandleIntent e colocar nela a lógica a ser executado. Repare que o mesmo método recebe um Intent como parâmetro, que é o mesmo passado pelo método startService.
public class MyIntentService extends IntentService{
@Override
protected void onHandleIntent(Intent intent){
//Aqui que você colocará a lógica do serviço
}
}
Lembrando que assim como Activity e Content Provider, os Serviços devem ser registrado no manifesto do Android.
Nenhum comentário:
Postar um comentário