Introdução a services


Nesse capitulo nos iremos ver como trabalhar com a classe serivces.

O service é um componente do android que permite realizar longas operações em segundo plano, mesmo quando a aplicação for finalizar o nosso service continuara executando. Em um service por exemplo nos podemos realizar operações de rede, acessar servidor, acessa recurso do sistema do android e etc.

Vamos criar um novo projeto, vamos criar dois Buttons no nosso arquivo activity_main.xml e vamos criar as referencias desse buttons no nosso arquivo MainActivity.

Nos agora iremos realizar as seguintes alterações na nossa MainActivity, no button iniciar nos iremos iniciar o nosso servico atraves do metodo startService, e no button parar nos iremos parar o nosso service atraves do metodo stopService, nos dois eventos a nossa Intent recebe como parametro o nome da ação que vai ser executada ao clicar nos buttons, essa ação vai ser reconhecida para ser iniciado nosso service.

Agora vamos criar a nossa classe que sera responsavel pelo nosso service, essa classe tem que herdar a classe Service.

Para utilizar o service no nosso sistema, nos temos que adicionar o service no nosso AndroidManifest.xml atraves da tag <service> e informar atraves da tag <intent-filter> a action que o nosso service espera para ser iniciado.

Agora nos iremos sobreescrever os principais metodos que fazem parte do ciclo de vida do nosso service na classe MyService.

onCreate - É chamado quando o serviço é instanciado e executado pela primeira vez.

onStartCommand - É chamado sempre que o serviço é invocado pelo metodo startService()

Vamos agora criar a nossa classe BroadCastReceiver que vai ser ela a responsavel por iniciar o nosso service assim que o dispositivo for ligado.

Agora vamos iniciar a chamada do nosso service no metodo onReceiver.

Agora vamos voltar ao nosso arquivo AndroidManifest.xml e vamos adicionar a permissão de RECEIVE_BOOT_COMPLETED, e adicionar a tag <receiver> com o nosso intent-filter com a action para ativar o nosso broadcast assim que o nosso device for ligado.

Agora vamos voltar ao nosso arquivo MyService e vamos realizar as seguintes alterações. Vamos criar uma instancia da classe Timer que sera a responsavel por executar o nosso service de tempos em tempos, dentro do metodo onCreate nos iremos iniciar esse nosso timer chamando o metodo scheduleAtFixedRate, esse metodo recebe como primeiro parametro uma clase chamada TimerTask que implementa o metodo run, no metodo run nos iremos executar o nosso codigo, o segundo parametro é um tempo em milissegundos de atraso antes de iniciar a nossa tarefa e o terceiro parametro é o tempo para iniciar a nossa tarefa em milissegundos.

Agora vamos adicionar um metodo na nossa classe MyService, esse metodo vai ser chamado de executarAtividade e vai exibir no logcat a data/hora atual do device, nos iremos chamar esse metodo no run do nosso timer.

Agora vamos executar a nossa aplicação e vamos ver como funciona o processo com services, nesse caso sempre vamos observar o nosso logcat para saber se esta funcionando.

results matching ""

    No results matching ""