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

arrow_back Aula 13 - Services, Content Providers e Broadcast Receivers

Services

Já vimos alguns conceitos sobre Services no começo do curso, porém, é sempre bom relembrar. Os Services são componentes que executam em background e por isso não possuem interface com o usuário. Essa é a grande diferença entre eles e as Activities. Outro aspecto importante em relação aos Services é que eles podem ser inicializados por uma aplicação e utilizados por outras. Estes também possuem a capacidade de permanecer executando mesmo depois do término da aplicação que o criou. Alguns exemplos da utilidade de Services são:

  • Tocar músicas em background: na aula anterior, vimos como implementar uma Activity que fosse capaz de reproduzir uma mídia. Porém, sabemos que a Activity tem um ciclo de vida e que ela costuma ser paralisada quando o usuário entra em outra parte da aplicação. Para criarmos então uma reprodução de áudio que pudesse continuar mesmo após o encerramento da aplicação ou a troca de foco, poderíamos utilizar um Service para isso.
  • Transmitir dados via rede: suponha que queiramos fazer um download de um arquivo. Esse processo é muito demorado para ser feito na thread principal e poderia facilmente bloqueá-la, causando um ANR. Para evitar isso, podemos lançar um Service em outra thread ou em outro processo, quando necessário, para que ele possa fazer o download dos dados que precisamos. Assim, podemos manter a thread principal livre para que a aplicação flua, mesmo enquanto fazemos a aquisição dos dados que foram requeridos. Uma vez completada a transmissão, o Service pode disponibilizar ao usuário o resultado obtido.

Através desses exemplos e da descrição, é fácil imaginar quando deveremos utilizar Services em nossa aplicação. O primeiro caso em que devemos criar um Service para nossas aplicações é quando há a necessidade de deixar alguma operação executando, mesmo após o usuário concluir a execução da aplicação. Um exemplo disso acontece na aplicação padrão de áudio do Android. Ao abrir a aplicação, você pode escolher qual música reproduzir e então fechar a aplicação. Mesmo após o encerramento da aplicação, a música fica tocando, indicada por uma notificação que pode levar o usuário de volta a aplicação para parar o serviço.

Outro caso que necessitaria da criação de um Service seria a execução de uma operação que precisasse realizar uma tarefa periodicamente, sem a intervenção do usuário. Imagine que você tem uma aplicação que depende de alguma atualização na web, como o Twitter, por exemplo. Nesse caso, seria necessário manter um serviço rodando em background que fosse capaz, de tempos em tempos, de buscar por atualizações na web. Esses são apenas alguns exemplos de casos em que um Service poderia ser utilizado. Existem, obviamente, diversos outros.

Versão 5.3 - Todos os Direitos reservados