Um aplicativo simples de cronômetro com composição de jetpack usando serviços de primeiro plano e vinculados
Verifique o YouTube para obter um tutorial em vídeo completo
Esta aplicação consiste basicamente em 3 unidades de texto diferentes que representam Horas, Minutos e Segundos. Também temos dois botões na UI. O primeiro botão será alterado com base no estado do serviço e o segundo botão nos permitirá cancelar o serviço em primeiro plano, o que resultará na reinicialização do nosso cronômetro.
Você pode controlar o cronômetro pelos botões da interface do usuário ou pelo painel de notificação. Como estamos usando serviços, se fecharmos o aplicativo também poderemos rastrear o estado do cronômetro pelo painel de notificação.
Hilt é uma biblioteca de injeção de dependência para Android que reduz o padrão de injeção manual de dependência em seu projeto. Fazer injeção manual de dependência exige que você construa cada classe e suas dependências manualmente e use contêineres para reutilizar e gerenciar dependências.
O Hilt fornece uma maneira padrão de usar DI em seu aplicativo, fornecendo contêineres para cada classe Android em seu projeto e gerenciando seus ciclos de vida automaticamente. O Hilt foi desenvolvido com base na popular biblioteca DI Dagger para se beneficiar da correção do tempo de compilação, do desempenho do tempo de execução, da escalabilidade e do suporte ao Android Studio que o Dagger oferece.
Um serviço vinculado é uma implementação da classe Service que permite que outros aplicativos se vinculem a ele e interajam com ele. Para fornecer vinculação para um serviço, você deve implementar o método de retorno de chamada onBind(). Este método retorna um objeto IBinder que define a interface de programação que os clientes podem usar para interagir com o serviço.
Os serviços em primeiro plano executam operações que são perceptíveis para o usuário.
Os serviços em primeiro plano mostram uma notificação na barra de status, para que os usuários estejam ativamente cientes de que seu aplicativo está executando uma tarefa em primeiro plano e consumindo recursos do sistema.
Dispositivos que executam o Android 12 (API de nível 31) ou versões posteriores oferecem uma experiência simplificada para serviços em primeiro plano de curta duração. Nestes dispositivos, o sistema aguarda 10 segundos antes de mostrar a notificação associada a um serviço em primeiro plano. Existem algumas exceções; vários tipos de serviços sempre exibem uma notificação imediatamente.