Introdução ao WorkManager para Kotlin
\n\nWorkManager é uma biblioteca do Google para Android, projetada para executar tarefas em segundo plano que devem ser garantidamente concluídas mesmo após a reinicialização do dispositivo ou fechamento do aplicativo. Ela faz parte do Android Jetpack e fornece uma API simples e confiável para agendar tarefas adiadas, periódicas e únicas.
\n\nO principal objetivo do WorkManager é substituir mecanismos obsoletos de trabalho em segundo plano, como Service ou AsyncTask, e garantir compatibilidade com diferentes versões do Android (a partir da API 14+). A biblioteca escolhe automaticamente a melhor forma de executar a tarefa: JobScheduler (API 23+), AlarmManager + BroadcastReceiver (versões mais antigas) ou Firebase JobDispatcher (se conectado).
WorkManager é ideal para cenários como: sincronização de dados com o servidor, envio de análises, download de arquivos, processamento de imagens, backup, envio de notificações push e qualquer outra tarefa que não exija execução imediata, mas que deva ser concluída em breve.
\n\nInstalação do WorkManager
\n\nWorkManager não é instalado via pip ou npm, pois é uma biblioteca para Android (Kotlin/Java). Para adicioná-la ao seu projeto, é necessário modificar o arquivo build.gradle (nível do módulo).
Passo 1: Abra o arquivo build.gradle do seu módulo (app/build.gradle).
Passo 2: Adicione a dependência no bloco dependencies:
dependencies {\n implementation "androidx.work:work-runtime-ktx:2.9.0"\n}\n\nPasso 3: Sincronize o projeto (Sync Now).
\n\nSe você estiver usando Kotlin DSL, a dependência será assim:
\n\ndependencies {\n implementation("androidx.work:work-runtime-ktx:2.9.0")\n}\n\nImportante: A versão 2.9.0 é a atual no momento da escrita deste artigo. Recomenda-se verificar a versão mais recente no site oficial do Android Developers.
\n\nInício rápido com exemplo de código
\n\nVamos considerar um exemplo simples: criar uma tarefa em segundo plano que exibe um log no Logcat.
\n\nPasso 1: Crie a classe Worker
\n\nimport android.content.Context\nimport android.util.Log\nimport androidx.work.Worker\nimport androidx.work.WorkerParameters\n\nclass SimpleWorker(context: Context, params: WorkerParameters) : Worker(context, params) {\n\n override fun doWork(): Result {\n Log.d("SimpleWorker", "Tarefa em segundo plano concluída!")\n // Aqui você pode executar qualquer operação longa\n return Result.success()\n }\n}\n\nPasso 2: Agende a execução da tarefa
\n\nimport androidx.work.OneTimeWorkRequestBuilder\nimport androidx.work.WorkManager\n\nval workRequest = OneTimeWorkRequestBuilder<SimpleWorker>()\n .build()\n\nWorkManager.getInstance(context).enqueue(workRequest)\n\nApós chamar enqueue(), a tarefa será executada em breve (geralmente em alguns segundos, se não houver restrições).
Principais métodos e funções do WorkManager
\n\n1. OneTimeWorkRequestBuilder
\nO que faz: Cria uma solicitação única para executar uma tarefa. A tarefa é executada uma vez e depois removida da fila.
\nParâmetros:
\n- \n
workerClass(obrigatório) — classe que herda deWorkerouCoroutineWorker. \n setInitialDelay()— atraso antes da execução (em milissegundos). \n setConstraints()— restrições (por exemplo, conexão com a internet). \n addTag()— tag para agrupar tarefas. \n setInputData()— dados de entrada para o Worker. \n
Também na biblioteca
Envio de SMS em C++: API das bibliotecas libcurl e cpprestsdk
Geração de PDF em C++: visão geral de bibliotecas e ferramentas
Cliente Redis para TypeScript: ioredis e redis (node-redis)
Serialização de objetos em Swift (iOS/macOS): Codable, JSON e PropertyList
Cache em Kotlin: Redis, Caffeine e Ehcache — guia completo
Recommendations