Junior
O que é o WorkManager?
sobes.tech IA
Resposta da IA
O WorkManager é a solução recomendada no Android para a execução diferida de trabalhos em segundo plano garantidos, que devem ser realizados mesmo que a aplicação seja fechada ou o dispositivo seja reiniciado.
Faz parte do conjunto de bibliotecas Android Jetpack e oferece uma forma flexível e confiável de programar tarefas.
Vantagens principais:
- Execução garantida: O WorkManager garante a execução do trabalho em segundo plano, mesmo que a aplicação seja forçosamente parada ou o dispositivo seja reiniciado.
- Suporte a constraints: Permite definir condições para a execução do trabalho (por exemplo, disponibilidade de rede, carga da bateria).
- Suporte a tarefas únicas e periódicas: Pode programar tarefas tanto únicas quanto recorrentes.
- Suporte à cancelamento de trabalho: Fornece mecanismos para cancelar trabalhos agendados.
- Compatibilidade com diferentes versões do Android: Usa as APIs apropriadas dependendo da versão do sistema operativo (JobScheduler, AlarmManager e BroadcastReceiver).
- Suporte a gráficos de trabalho complexos: Permite combinar várias tarefas em cadeias ou grupos paralelos.
Componentes principais:
Worker: Define o trabalho real que deve ser realizado.WorkRequest: Define como e quando o trabalho deve ser realizado. ExistemOneTimeWorkRequestePeriodicWorkRequest.WorkManager: Planeja e gerenciaWorkRequest.
Exemplo de uso:
// Criar um WorkRequest para uma tarefa única
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<MyUploadWorker>()
.build()
// Agendar a tarefa
WorkManager.getInstance(context).enqueue(uploadWorkRequest)
// Exemplo de classe Worker
class MyUploadWorker(
appContext: Context,
workerParams: WorkerParameters
) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Aqui realiza-se trabalho pesado ou em segundo plano
return Result.success() // ou Result.failure(), Result.retry()
}
}