WorkManager :getInstance() 已废弃

11

WorkManager.getInstance()在2.1.0版本中已被弃用。

依赖项:

implementation 'androidx.work:work-runtime:2.1.0'

这种方法有哪些变化或其他方式?

我分享这个东西是为了知识目的。谷歌在官方网站之前给出stackoverflow的结果。请告诉我为什么要点踩? - Pratik Butani
如果这个问题能帮助开发人员,我很乐意在这里回答(已经点赞了)。然而,搜索“WorkManager.getInstance()在2.1.0版本中已过时”会返回发布说明和文档的链接。在这种情况下,我通常会尽量避免重复,因为这可能会成为未来的维护成本。如果您认为WorkManager的文档需要改进,请提交一个错误报告:https://issuetracker.google.com/issues/new?component=409906&template=1094197 - pfmaggi
2个回答

30
我在文档中找到了如下解决方案:

这种方法已经过时。

请改用getInstance(Context)

Context 用于按需初始化。

WorkManager v2.1引入了一种新的方式来自定义其配置。与之前的版本不同,以前需要在应用程序启动期间创建新的配置并初始化WorkManager,v2.1添加了一种新的“按需”初始化。

这意味着第一次调用 getInstance(Context) 方法时,将使用默认或自定义初始化初始化WorkManager。

在这种情况下,Context 用于检索应用程序对象并查看它是否实现了 Configuration.Provider 接口。

有关更多信息,请参见 WorkManager的自定义配置文档

即使您不使用按需初始化,也最好使用新的 getInstance(Context) 方法,WorkManager的发行说明 中记录了此更改(在 WorkManager v2.1-alpha01 中引入),并在那里解释了为什么要使用新方法。

注意:无论何时更改或更新依赖版本,请仔细查看发布说明

5
根据文档,你必须使用以下方式:
val workManager = WorkManager.getInstance(applicationContext)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接