Starting a Background Task Using WorkManager
The first question we will address here is, Should we opt for WorkManager
or a foreground service? To answer that, a good rule of thumb is to ask; do you need the action to be tracked by the user in real time? If the answer is yes (for example, if you have a task such as responding to the user's location or playing music in the background), then you should use a foreground service, with its attached notification to give the user a real-time indication of state. When the background task can be delayed or does not require user interaction (for example, downloading a large file), use WorkManager
.
Note
Starting with version 2.3.0-alpha02 of the WorkManager
, you can launch a foreground service via the WorkManager
by calling setForegroundAsync(ForegroundInfo)
. Our control over that foreground service is quite limited. It does allow you to attach a (pre-defined) notification to the work, which is why it is worth mentioning.
In our...