Android Background Processing
Learn about all the cool concepts from background processing in Android! Use the WorkManager, JobScheduler, Services, AsyncTasks and the AlarmManager. Learn what each concept brings to the table, and how they affect your app's performance! By Filip Babić.
Learning path
This is part of the Android Data & Networking learning path. View path.
Who is this for?
Beginner Android developers who want to learn more about different background processing options the Android ecosystem provides, such as Services and the WorkManager.
Covered concepts
- Threading basics
- WorkManager
- DownloadManager
- AsyncTask
- JobScheduler
- AlarmManager
- Services
- IntentService
- JobService
- JobIntentService
- Foreground Services
- BroadcastReceivers
Part 1: Run Background Work
Learn which concepts you'll cover in this course, by exploring what each concept does and how it works in Android.
Introduce the projects you'll use in the course, set up your IDE, and repeat the concepts you've learned in previous courses about threading.
Use the WorkManager API to implement a simple worker which does some work in the background.
Explore the WorkManager API more, by implementing more workers, and adding results to those workers, chaining them together.
Implement another worker, to apply a filter to the image, practicing what you've learned so far.
Revise the concepts you've learned so far, and prepare for the next part of the course.
Part 2: Use WorkManager In Complex Apps
Repeat the concepts from the first part of the course, and be introduced to the new concept you'll learn - DownloadManager.
Set up the second course projects. Install Node.js, and run the server, set up the base URL for the Android project.
Implement a similar example as in the first part of the course, in a more complex application.
Implement more workers and add more functionality to the project. Chain workers, and their results.
Practice using the WorkManager API, to implement another worker and chain and observe the results.
Replace the WorkManager usage when downloading images, with the DownloadManager, to display download progress.
Practice using the DownloadManager, to add more support for download progress.
Revise all the concepts learned so far, and the use cases you covered using the WorkManager and DownloadManager.
Part 3: Use Android Services
Revise some of the concepts you've learned previously, and introduce a bunch of new concepts revolving around Services.
Implement the basic Android Service, to run work in the background, and offload the main thread.
Build an IntentService and a JobIntentService, to represent one-off work, which you run and forget about.
Practice what you've learned about Services, to implement another JobIntentService, and run one-off work.
Learn about background restrictions, and foreground Services which display a notification to users.
Implement the go-to way for communication between Android components which are used for background processing - BroadcastReceivers.
Repeat everything you've learned about Services and BroadcastReceivers, in a fun challenge!
Revise all the concepts you've learned, and all the mechanisms you've implemented, so far in the course, and prepare for the last part.
Part 4: Implement Legacy Background Processing
Repeat everything you've learned so far, and learn about the legacy concepts in background processing in Android.
Implement an AsyncTask, the notorious wholesome API for background processing and returning values from the background.
Implement the JobService, powered by the JobScheduler API, to run tasks with constraints, similar to WorkManager's Workers.
As the last legacy concept, use the AlarmManager to create a signal to wake up the device and update an existing Activity.
Wrap up the entire course, by revisiting all the concepts once more, and discovering new courses and tutorials to go through next!