Android WorkManager:调度Worker执行时Application的创建与初始化顺序
关于Worker执行与Application初始化的问题解答
杀死应用后执行已调度的Worker时,会触发Application的onCreate
当系统需要执行已调度的Worker时,会先拉起你的应用进程(如果进程已被杀死),而进程启动的必经流程就是调用Application的onCreate方法,所以这个方法一定会被执行。执行顺序:Application onCreate完成后才会执行Worker
系统的进程启动逻辑是严格按顺序执行的:先完成Application的初始化(包括onCreate方法的全部代码执行),之后才会处理进程内的后台任务,包括Worker的doWork()方法调用。不存在Worker先执行、Application初始化未完成的情况。Worker依赖的Application初始化内容可以保证就绪
由于Worker的执行是在Application onCreate完全结束之后,所以你在Application onCreate中完成的所有初始化操作——比如全局配置初始化、第三方SDK初始化、全局变量赋值等——在Worker的doWork()方法里都可以正常访问和使用,无需担心未就绪的问题。
内容的提问来源于stack exchange,提问作者Anuvrat Chitranshi
相关产品推荐
相关产品推荐

