WorkManager 初始化异常排查

2023-09-11  本文已影响0人  smart_dev

WorkManager is already initialized

在APP挂monkey大量报错

java.lang.IllegalStateException: WorkManager is already initialized.  
Did you try to initialize it manually without disabling WorkManagerInitializer? 
See WorkManager#initialize(Context, Configuration) or the class level Javadoc for more information.

三种初始化方式

  1. 显示调用init

  2. 实现Configuration.Provider 接口,getInstance传入context ,此时内部会显示调用init

  3. WorkManagerInitializer 自动初始化,实际上也是显示调用init

报错的三方SDK操作思路:屏蔽自动初始化,显示调用

小结

总结下这个问题,当多个module或者多个进程都要使用workmanager,如何才能确保正确的初始化?

源码中初始化有两处异常抛出:
WorkManager is already initialized
WorkManager is not initialized properly

由于该组件同一个进程只能初始化一次,必须要约定好。建议如果自己module选择了手动初始化,请记得捕获异常。

拓展: 多进程使用 workmanager
https://juejin.cn/post/7002086910331977736
https://segmentfault.com/a/1190000039267768

上一篇 下一篇

猜你喜欢

热点阅读