Articles

Schedule tasks with WorkManager Part of Android Jetpack.

WorkManager é uma API que facilita o agendamento de tarefas deferíveis e assíncronas que são esperadas torun mesmo que o aplicativo saia ou o dispositivo seja reiniciado. A API do WorkManager é adequada e recomendada para substituir todas as APIs anteriores de programação de fundo do Android, incluindo oFirebaseJobDispatcher, o GcmNetworkManager e o Job Scheduler. O WorkManager incorpora os recursos de seus predecessores em uma API moderna e consistente que funciona de volta ao nível 14 da API e, ao mesmo tempo, está consciente da vida útil da bateria.

O WorkManager usa um serviço de envio de trabalhos baseado nos seguintes critérios:

>If the device is running on API Level 23 or higher, JobScheduler is used. OnAPI Levels 14-22, GcmNetworkManager is chosen if it's available, otherwise, acustom AlarmManager and BroadcastReciever implementation is used as afallback.>

>Nota: Se o seu aplicativo tem como alvo o Android 10 (API nível 29) ou superior, as chamadas de API do seu FireBaseJobDispatcher e do GcmNetworkManager não funcionarão mais com os dispositivos rodando Android Marshmallow (6.0) ou superior. Siga os guias de migração para oFirebaseJobDispatcher e o GcmNetworkManager para obter orientações sobre migração. Além disso, veja o Unifying Background Task Scheduling onAndroidannouncement para obter mais informações sobre sua delimitação.

Features

Além de fornecer uma API mais simples e consistente, o WorkManager tem vários outros benefícios chave, incluindo:

Work Constraints

Declaratively define as condições ideais para que seu trabalho seja executado usando WorkConstraints.(Por exemplo, execute apenas quando o dispositivo for Wi-Fi, quando o dispositivo estiver ocioso, ou quando tiver espaço de armazenamento suficiente, etc.)

Robust Scheduling

WorkManager permite que você programe o trabalho para ser executado uma única vez ou repetidamente usando as janelas Flexiblescheduling. O trabalho também pode ser etiquetado e nomeado, permitindo-lhe agendar trabalho único e substituível e monitorar ou cancelar grupos de trabalho em conjunto. O trabalho agendado é armazenado em um banco de dados SQLite gerenciado internamente e oWorkManager cuida para garantir que esse trabalho persista e seja reprogramado através de reinicializações de dispositivos. Além disso, o WorkManager adere a funcionalidades de economia de energia e melhores práticas como o modo Doze, para que você não tenha que se preocupar com isso.

Política de RetryFlexible Retry

Por vezes o trabalho falha. WorkManager oferece retrypolicies flexíveis,incluindo uma backoffpolicy exponencial configurável.

Work Chaining

Para trabalhos complexos relacionados, encadear tarefas individuais de trabalho, usando uma interface fluente, natural, que permite controlar quais peças são executadas sequencialmente e quais são executadas em paralelo.

Kotlin

WorkManager.getInstance(...) .beginWith(listOf(workA,workB)) .then(workC) .enqueue()

Java

WorkManager.getInstance(...) .beginWith(Arrays.asList(workA, workB)) .then(workC) .enqueue();

Para cada tarefa de trabalho, você pode definir os dados de entrada e de saída para que funcione. Ao encadear trabalho em conjunto, o WorkManager passa automaticamente os dados de saída de uma tarefa de trabalho para a próxima.

Interoperabilidade de Rosqueamento do Built-In

WorkManager integra-se perfeitamente com RxJava e Coroutines e fornece a flexibilidade para ligar os seus próprios PAIs assíncronos.

Use WorkManager for Deferrable and Reliable Work

WorkManager is intended for work that is deferrable – that is, not required to run immediately-e required to run reliably even if the app exits or thedevice reiniciar. Por exemplo:

  • Enviar logs ou análises para serviços backend
  • Sincronização periódica de dados da aplicação com um servidor

WorkManager não se destina a trabalhos em background em processo que podem ser concluídos com segurança se o processo da aplicação for encerrado ou para trabalhos que exijam execução imediata. Por favor, revise o guia de processamento em segundo plano para saber qual solução atende às suas necessidades.

Aptando por Iniciar

Cheque o Guia de Introdução para começar a usar oWorkManager em sua aplicação.