Background Services – Xamarin.Forms 4.x

Este artigo tem o intuito de demonstrar como você pode implementar Background Services em seus Apps feitos com Xamarin.Forms de uma forma simples, rápida e fácil.

O que é

Background Services ou Serviços em Segundo Plano, de uma maneira bem simplista, é quando de acordo com a lógica de negócio ou o propósito do App em questão, necessitamos realizar algumas tarefas sem que impossibilite o uso da aplicação pelo usuário.

ADICIONANDO O NUGET PACKAGE

Para o exemplo será utilizado o plugin Matcha.BackgroundService, instale o plugin em todos os seus projetos.

1

 

Inicializando o Plugin

É necessário a inicialização do plugin em cada uma das plataformas, para isso adicione  BackgroundAggregator.Init(this) nas classes de inicialização.

Android

iOS

 

BackgroundService.cs

Crie a classe BackGroundService e implemente a interface IPeriodicTask.

No construtor, receba como parâmetro um inteiro, ele será o tempo para definir o intervalo de execução da sua tarefa (neste exemplo em segundos).

Atribua o parâmetro na variável Interval.

No método StartJob é onde a “mágica irá acontecer de fato”. Ou seja, aqui você irá definir o que deseja realizar em background. Para este exemplo eu estou apenas imprimindo no console a data atual.

Dependendo da sua lógica, as vezes é interessante que depois de uma determinada ação esse serviço em background não aconteça novamente, para isso apenas retorne False no método StartJob.

App.cs

Sobrescreva o método OnStart e registre o seu serviço utilizando BackgroundAggregatorService.Add e passe como parâmetro o tempo de intervalo desejado. Neste exemplo defini 15 segundos. Em seguida inicie o seu serviço em background utilizando StartBackgroundService como demonstrado a seguir.

Sobrescreva o método OnSleep para que o seu serviço em background pause quando sua aplicação não estiver sendo utilizada.

Sobrescreva o método OnResume para que o seu serviço comece novamente quando a sua aplicação voltar a ser utilizada.

 

Resultado

ezgif.com-video-to-gif.gif

 

Esse e todos os exemplos deste blog encontram-se disponíveis no GitHub.

icongithub

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s