Android Background Processing

Mobile apps use a main thread to show their UI and interact with a user. Overloading the main thread can harm the user experience. Learn to use background threads, the new WorkManager, and Android Services to let your app download and process data while maintaining UI performance. By Joe Howard.

Leave a rating/review
Save for later
Comments
Share

Part 1: Threads and AsyncTasks

01
Toggle description

Find out what's covered in our Android Background Processing video tutorial series: Threads, AsyncTasks, JobScheduler, WorkManager, and Services.

Toggle description

Download the starter app, build it in Android Studio, & review the app code. See the utility functions we'll use to make network calls & save data to storage.

Toggle description

Learn the definition of a thread, see the concepts of concurrency and multithreading, and be introduced to the app main thread.

Toggle description

See how to create and start a thread instance using the java.lang.Thread class and a java.lang.Runnable.

Toggle description

Separate threads have no inherent means of communicating with one another. See how to use Handlers to send messages from a background thread to the main thread.

Toggle description

Practice what you've learned so far to create a background thread and pass data back to the main thread.

AsyncTasks 5:23
Toggle description

Learn about a thread abstraction in the Android SDK named AsyncTask that simplifies using background threads and sending results to the main thread.

Toggle description

Practice what you've learned to create an AsyncTask of your own that makes a network call in the background and passes results to the main thread.

Conclusion 1:02
Toggle description

Let's review what you've covered on threads and AsyncTask in this first part of Android Background Processing, and then discuss what's next.

Part 2: JobScheduler and WorkManager

Toggle description

Learn about the need for efficient battery use for your background processing, and get an introduction to APIs that let you schedule work with the Android OS.

JobService 4:27
Toggle description

Learn about the class that lets you define the work that you will schedule with the Android OS using JobScheduler.

Toggle description

See how to use the JobScheduler API to schedule the background synchronization of a remote file with your device storage.

Toggle description

Practice what you've learned about JobScheduler and JobService to schedule your own JobService that logs a string on a background thread.

Toggle description

Get an introduction to the new WorkManager API in Android Jetpack that will eventually replace JobScheduler as the API to use to schedule work with the OS.

Conclusion 1:09
Toggle description

Let's review what you've covered about JobScheduler and WorkManager in this second part of Android Background Processing, and then discuss what's next.

Part 3: Services

Toggle description

Get an introduction to the Android Service class and what you'll learn about on Services in this part of the course.

Toggle description

Define Android Service-related terminology and see the various types of Services along with their typical uses.

Toggle description

Use an IntentService to run a potentially long-running task on a built-in background thread that completes when the task is done.

Toggle description

See how to use a BroadcastReceiver to send local broadcasts from a background IntentService that are received by the main thread.

Toggle description

Practice what you've learned about IntentService and BroadcastReceiver to download a data file and update the Photos screen when the download is complete.

Toggle description

See how to use a Foreground Service to allow your app to perform a long-running task like playing media when the rest of the app is in the background.

Toggle description

Learn how to use a notification to let your Foreground Service run on later versions of Android, including with a NotificationChannel on Android O and above.

Conclusion 2:13
Toggle description

In this final episode, we'll summarize this last part and the whole course, and then see an overview of Background Processing topics that were not covered.