Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 01 - Introdução ao Android

Services

O segundo componente que iremos estudar chama-se Service. O Service é o componente que permite à aplicação executar tarefas em segundo plano. Ao contrário das Activities, o Service não possui interface gráfica e é capaz de executar mesmo após a aplicação ter sido finalizada. Ao iniciá-lo, o desenvolvedor está criando um serviço que irá funcionar em segundo plano e ao qual outros componentes podem se ligar para obter informações que ele possa prover. Um exemplo disso é um Service que monitore informações de um endereço web e esteja conectado a um componente que será capaz de alertar ao usuário quando alguma mudança naquele endereço acontecer.

Assim como as Activities, o Service também possui um ciclo de vida. Vejamos a Figura 3.

Ciclo de vida de um Service

Como vemos na Figura 3, existem dois tipos diferentes de Services: os Unbounded service e o Bounded Service. A principal diferença entre esses dois tipos, é que no Bounded Service existe uma ligação entre o serviço e outros componentes Android permitindo a comunicação entre eles. Neste caso, todas as conexões ao Service são desfeitas este é automaticamente destruído. Já o Unbounded Service é iniciado por algum componente Android, mas depois disso possui um ciclo de vida independente do componente que o iniciou, podendo inclusive permanecer ativo mesmo após o fim do ciclo de vida do componente que o iniciou.

Assim como nas Activities, o primeiro passo para um Service do tipo Unbounded após ser criado é o onCreate(). Nesse método, os dados necessários para a execução do serviço são inicializados e o Service é criado. Em seguida, ao receber o comando para iniciar a execução, o método onStartCommand() é chamado e o Service passa então a executar, até que haja uma interrupção do cliente ou seu tempo de vida chegue ao fim. Em qualquer um desses dois casos, o método onDestroy() é executado antes do Service ser desligado.

Para o caso de serviços que suportam a conexão de componentes, após ser inicializado através do método onCreate(), o Service fica esperando algum cliente se conectar a ele. Quando isso ocorre, o onBind() é chamado, preparando o Service para receber esse cliente. Caso todos os clientes se desconectem, o Service passa pelo método onUnbind(). Após executar esse método, o Service observa sua configuração para ver se é possível que haja novas conexões a ele mesmo, ou se o Service deve encerrar o seu funcionamento após a desconexão de todos os clientes. Se o Service tiver configurado para encerrar, o método onDestroy() é chamado, encerrando-o na sequência. Se o caso for o de esperar um novo cliente, ele volta para o começo, aguardando novamente uma conexão.

Versão 5.3 - Todos os Direitos reservados