Programar tarefas com o WorkManager   Parte do Android Jetpack.

A API WorkManager facilita a programação de tarefas adiáveis e assíncronas que precisam ser executadas mesmo se o app fechar ou o dispositivo reiniciar.

Principais recursos:

  • Compatível com versões anteriores até a API 14
    • Usa o JobScheduler em dispositivos com a API 23 ou posteriores
    • Usa uma combinação de BroadcastReceiver + AlarmManager em dispositivos com API 14 a 22
  • Adiciona restrições de trabalho, como disponibilidade de rede ou status de carregamento
  • Programa tarefas pontuais ou periódicas assíncronas
  • Monitora e gerencia tarefas programadas
  • Encadeia tarefas
  • Garante a execução de tarefas, mesmo que o app ou dispositivo seja reiniciado
  • Tem recursos de economia de energia, como o modo "Soneca"

O WorkManager é destinado a tarefas que sejam adiáveis, ou seja, que não precisem ser executadas imediatamente, e que precisem ser executadas de forma confiável, mesmo que o app feche ou o dispositivo reinicie. Por exemplo:

  • Envio de registros ou análises para serviços de back-end
  • Sincronização periódica de dados do app com um servidor

O WorkManager não se destina ao trabalho em segundo plano em andamento que possa ser encerrado com segurança se o processo do app é encerrado ou para tarefas que exijam execução imediata. Consulte o Guia para o processamento em segundo plano para ver qual solução atende às suas necessidades.

Para importar a biblioteca do WorkManager para seu projeto Android, adicione as seguintes dependências ao arquivo build.gradle do aplicativo:

    dependencies {
      def work_version = "2.3.4"

        // (Java only)
        implementation "androidx.work:work-runtime:$work_version"

        // Kotlin + coroutines
        implementation "androidx.work:work-runtime-ktx:$work_version"

        // optional - RxJava2 support
        implementation "androidx.work:work-rxjava2:$work_version"

        // optional - GCMNetworkManager support
        implementation "androidx.work:work-gcm:$work_version"

        // optional - Test helpers
        androidTestImplementation "androidx.work:work-testing:$work_version"
      }
    

Tópicos

Noções básicas

Guias de instruções

Conceitos avançados

Guias de migração

Outros recursos

Amostras

  • WorkManagerSample (link em inglês), um app simples de processamento de imagens
  • Sunflower (link em inglês), um app de demonstração que apresenta as práticas recomendadas com vários componentes de arquitetura, incluindo o WorkManager

Codelabs

Vídeos

Blogs (em inglês)