Android. Is WorkManager running when app is closed?
Based on various issues reported on the WorkManager bugtracker, their documentation is not completely precise about the exact behavior of the WorkManager in such edge cases.
On certain devices, apps are force stopped when the app is cleared from task manager, so that part is expected. ... source
Unfortunately, some devices implement killing the app from the recents menu as a force stop. Stock Android does not do this. When an app is force stopped, it cannot execute jobs, receive alarms or broadcasts, etc. So unfortunately, it's infeasible for us to address it - the problem lies in the OS and there is no workaround. source
The only issue that we have come across is the case where some Chinese OEMs treat swipe to dismiss from Recents as a force stop. When that happens, WorkManager will reschedule all pending jobs, next time the app starts up. Given that this is a CDD violation, there is not much more that WorkManager can do given its a client library. source
To add to this, if a device manufacturer has decided to modify stock Android to force-stop the app, WorkManager will stop working (as will JobScheduler, alarms, broadcast receivers, etc.). There is no way to work around this. Some device manufacturers do this, unfortunately, so in those cases WorkManager will stop working until the next time the app is launched. source
With intense testing of a OneTimeWorkRequest
(without constraints) on a Pixel 2 XL with stock android the behavior is the following:
- Task manager close:
- Work continues (after a bit)
- Reboot device (work running):
- Work continues after reboot done
- App info "Force stop":
- Work stops, will only continue when app is started again
- Reboot device (work was "Force Stopped"):
- Work does not continue until the app is started again
You can find a complete list of different OEM behaviors on dontkillmyapp.com. It seems the Android team also acknowledges this issue and added a test for this into their CTS test for Android Q. source
How can a closed application perform periodic work with WorkManager on Android 10?
There has been nothing wrong with the code or the project setup. My device has been in power saving mode and this obviously has prevented the periodic WorkManager
tasks when the activity had been closed. Leaving power saving mode has solved the problem.
Related Topics
Bitmapfactory Oom Driving Me Nuts
Finish an Activity from Another Activity
How to Mock Location on Device
How to Disable Action Bar Permanently
How to Get the Touch Position in Android
Android: Out of Memory Exception in Gallery
Dynamically Changing the Fragments Inside a Fragment Tab Host
Pass a String from One Activity to Another Activity in Android
How to Kill an Application with All Its Activities
Passing Arraylist of Objects Between Activities
Get the Current Language in Device
Datepicker: How to Popup Datepicker When Click on Edittext
Android Studio - Mergedebugresources Exception
Programmatically Scroll to a Specific Position in an Android Listview
Broadcastreceiver Not Receiving Boot_Completed