User Initiated Data Transfer Jobs
summary
Explains how Android’s User Initiated Data Transfer jobs (Android 14+) let user-started uploads/downloads run longer than normal background work by using jobScheduler with the flag userInitiated=true, a required persistent notification, and onStartJob that updates notification and runs async work then calls jobFinished. Jobs run concurrently, require manifest permissions, respect network and resource constraints, and only schedule when app is visible or allowed by background-start exceptions. Migration shows concrete wins: Google Maps reports ~10% reliability gain; fallback for older OS is WorkManager/foreground service.
AI-written summary · about
chapters (8)
- 0:00User initiated data transfer jobs
- 1:47Android foreground service changes
- 5:37User initiated data transfer jobs
- 8:04How to write a user initiated data transfer job
- 13:56Scheduling UID jobs
- 18:52Migrating to UID jobs
- 21:43Use cases for UID jobs
- 22:47Future of UID jobs
related talks
39mModern best practices for background task execution
28mBest practices for running background work on Android
11mEffective background tasks on Android
42mBuilding for Android O
50mWTF with Android Background Restrictions
31mAndroid Jetpack: Easy background processing with WorkManager
45mWorking background with WorkManager API
34mFrom AlarmManager to WorkManager
