Tarefas periódicas e encadeadas
Repita e sequencie tarefas em segundo plano.
Tarefas periódicas e encadeadas é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Trabalhos periódicos e encadeados
Além das tarefas executadas uma única vez, o WorkManager pode repetir trabalhos segundo uma programação e encadear vários trabalhadores para que sejam executados em sequência. Esta lição aborda os dois recursos.
PeriodicWorkRequest
Para trabalhos recorrentes, use PeriodicWorkRequestBuilder, especificando um intervalo de repetição. O WorkManager executa novamente o trabalhador uma vez a cada intervalo.
val periodic = PeriodicWorkRequestBuilder<SyncWorker>(
repeatInterval = 1,
repeatIntervalTimeUnit = TimeUnit.HOURS
).build()O mínimo de 15 minutos
O intervalo mínimo de repetição é de 15 minutos. Solicitações com um intervalo menor são ajustadas para 15 minutos. Isso protege a bateria; o WorkManager não serve para controlar o tempo segundo a segundo.
O trabalho periódico não é exato
O intervalo é uma orientação, não um temporizador preciso. O sistema pode executar o trabalho mais tarde para agrupar tarefas e economizar energia. Não dependa dele para tarefas críticas em relação ao tempo.
Enfileirando trabalho periódico exclusivo
Use enqueueUniquePeriodicWork para não acumular várias cópias do mesmo trabalho periódico entre as inicializações do aplicativo.
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
"daily_sync",
ExistingPeriodicWorkPolicy.KEEP,
periodic
)O que é o encadeamento
O encadeamento executa os trabalhadores em uma ordem definida: a etapa B começa somente depois que a etapa A é concluída com sucesso. A saída de uma etapa se torna a entrada da próxima.
beginWith e then
Inicie um encadeamento com beginWith e adicione etapas sequenciais com then. Chame enqueue para enviar todo o encadeamento.
WorkManager.getInstance(context)
.beginWith(compressRequest)
.then(uploadRequest)
.then(cleanupRequest)
.enqueue()Os dados percorrem o encadeamento
Os dados de saída Data de um trabalhador são passados como entrada para o próximo. Assim, compressRequest pode retornar um caminho de arquivo que uploadRequest lê de seu inputData.
Etapas paralelas em um encadeamento
Você pode executar vários trabalhadores em paralelo passando uma lista para beginWith; o then seguinte espera que todos terminem.
WorkManager.getInstance(context)
.beginWith(listOf(downloadA, downloadB))
.then(mergeRequest)
.enqueue()Uma falha interrompe o encadeamento
Se algum trabalhador retornar Result.failure(), as etapas restantes do encadeamento serão canceladas. Um retry(), por outro lado, pausa o encadeamento até que essa etapa seja concluída com sucesso.
Combinando com restrições
Cada solicitação em um encadeamento ou cada solicitação periódica pode ter suas próprias restrições; por exemplo, somente a etapa de envio pode exigir uma rede sem cobrança por uso de dados, enquanto a compactação pode ser executada a qualquer momento.
Verificação rápida
Teste sua compreensão sobre trabalhos periódicos e encadeados.
Recapitulação
Você aprendeu sobre trabalhos periódicos e encadeados:
PeriodicWorkRequestBuilderrepete o trabalho, com mínimo de 15 minutos e sem execução exatabeginWith().then()encadeia trabalhadores em sequência- Os dados de saída passam de uma etapa para a próxima; as listas são executadas em paralelo
- Uma falha cancela o encadeamento; cada etapa pode ter suas próprias restrições
Você concluiu o curso de WorkManager.
Perguntas Frequentes
A aula “Tarefas periódicas e encadeadas” é grátis?
Sim — o texto completo de “Tarefas periódicas e encadeadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Tarefas periódicas e encadeadas”?
Repita e sequencie tarefas em segundo plano. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Tarefas periódicas e encadeadas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Quando usar o WorkManager
- Criando um Worker
- Restrições e agendamento
- Tarefas periódicas e encadeadas