Service

O que é?

O que é?

Uma classe responsável por executar uma determinada tarefa em segundo plano, sem que o usuário perceba.

Precisa de uma interface gráfica?

Interface gráfica?

Por se tratar de uma tarefa em segundo plano, não tem vínculo com uma interface gráfica.

Service ou Thread?

Service ou Thread?

Thread não faz parte do ciclo de vida do Android. Service tem prioridade sobre qualquer outro processo em segundo plano.

Service ou Thread?

Mesmo que um Service seja encerrado pelo SO, o Android tentará reiniciá-lo assim que as condições de recursos se normalizem.

Criando um Service

Criando um Service

  • Estender a classe android.app.Service
  • Mapear no AndroidManifest.xml

Como iniciá-lo?

Como iniciá-lo?

  • startService()
  • bindService()

Qual a diferença?

Qual a diferença?

startService() inicia e executa independentemente do processo que o criou.

Qual a diferença?

bindService() inicia (caso ainda não esteja em execução) e/ou simplesmente realiza o bind (a conexão).

Como encerrá-lo?

Como encerrá-lo?

  • stopSelf()
  • stopService()
  • unbindService()

O ciclo de vida...

Exemplo

Vamos praticar...

Crie uma Activity com dois botões: iniciar e parar. 

Crie um Service para incrementar e logar uma variável do tipo inteiro.

Como obter o valor incrementado?

Dicas

Dica I

É comum iniciarmos um Service com startService() e em seguida realizarmos o bind com bindService().

Dica II

Evite deixar serviços executando continuamente para não consumir recursos. Reflita sobre AlarmManager ou Handler para agendar ou repetir as execuções dos serviços.

Desenv. de apps móveis para Android (Service)

By Ricardo Longa

Desenv. de apps móveis para Android (Service)

  • 1,266