
先把结论放在前面:WorkManager 解决的是"保证要做成、且尊重系统调度"的问题,不是"立刻执行"的问题。它的核心能力只有三样——持久化任务队列、约束条件(Constraints)、可组合的工作链(WorkSpec)。选型判据就一句:需要保证完成、可以延迟的工作交给它;需要立刻且用户可见的交给前台服务。每次面试讲到 WorkManager,都有人栽在追问上。这篇把追问最密集的地方提前标出来。先把 API 表面过一遍,重点在约束val request = OneTimeWorkRequestBuilderUploadWorker() .setConstraints( Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) // 联网 .setRequiresCharging(false) .setRequiresStorageNotLow(true) // 存储空间充足 .setRequiresBatteryNotLow(true) // 电量充足 .setRequiredNetworkType(NetworkType.UNMETERED)