When to Use WorkManager
Choose the right background work tool.
When to Use WorkManager is a free Android Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Android Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
When to Use WorkManager
WorkManager is the recommended API for deferrable, guaranteed background work on Android. If a task must run eventually, even after the app closes or the device reboots, WorkManager is the tool.
Deferrable and Guaranteed
Two key words define WorkManager's niche:
- Deferrable: it does not need to run right now; it can wait for the right conditions
- Guaranteed: it will run eventually, surviving app exit and reboot
Good Use Cases
WorkManager fits work like:
- Uploading logs or analytics
- Syncing data with a server
- Periodically backing up content
- Compressing or processing images
All of these can wait and must not be lost.
When NOT to Use It
WorkManager is the wrong tool for:
- Immediate in-app work tied to the current screen: use a coroutine in
viewModelScope - Exact-time alarms: use
AlarmManager - User-initiated, must-finish-now long tasks: consider a foreground service
It Respects System Health
WorkManager batches and defers work to respect Doze mode, battery, and background limits. You describe the requirements; the system picks an efficient time to run, preserving battery.
Constraints Drive Execution
You attach constraints like "only on unmetered network" or "only while charging". WorkManager waits until those are met before running your task.
It Handles Persistence
WorkManager stores its work queue in an internal database. If the app is killed or the phone restarts, your scheduled work is restored and still runs. You get this for free.
One-Time vs Periodic
WorkManager supports two shapes of work:
- OneTimeWorkRequest: runs once
- PeriodicWorkRequest: repeats on an interval (minimum 15 minutes)
Built-In Retry
If your work fails transiently, returning Result.retry() tells WorkManager to try again later using a backoff policy, so you do not hand-roll retry logic.
Adding the Dependency
Add the WorkManager runtime artifact (with KTX coroutine support) to your module Gradle file.
dependencies {
implementation("androidx.work:work-runtime-ktx:2.9.1")
}The Mental Model
Think of WorkManager as a reliable to-do list for background tasks: you add a job with conditions, and the system promises to complete it at a sensible time, even if life interrupts.
Quick Check
Test your understanding of when to use WorkManager.
Recap
You learned WorkManager's purpose:
- It runs deferrable, guaranteed background work
- Great for sync, uploads, backups; wrong for immediate or exact-time work
- It persists across app death and reboot, respects battery, and retries
- Supports one-time and periodic work with constraints
Next: creating a Worker.
Frequently asked questions
Is the “When to Use WorkManager” lesson free?
Yes — the full text of “When to Use WorkManager” is free to read here on the web, and the Android Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Android Academy course, upgrade to CoddyKit PRO.
What will I learn in “When to Use WorkManager”?
Choose the right background work tool. You practise Android Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Android Academy?
No prior experience is required. Android Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “When to Use WorkManager” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Android Academy lesson?
Yes. Every Android Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- When to Use WorkManager
- Creating a Worker
- Constraints and Scheduling
- Periodic and Chained Work