Android Worker类为嵌套类

时间:2019-10-17 12:48:38

标签: android android-workmanager

我在我的应用程序中使用WorkManager。当我的工作程序类是嵌套类(在我的活动内部)时,出现“无法实例化工作程序”错误。 正如下面的链接所讨论的,对我有用的解决方案是使工人成为独立的班级。

Android Work Manager: "Could not instantiate Worker"

有没有办法使我的工人成为嵌套类?

2 个答案:

答案 0 :(得分:0)

如果您使用的是kotlin,则可以从类声明中删除“ inner”关键字。这应该摆脱错误。但是,您将无法访问其外部类的成员。

答案 1 :(得分:0)

这是WorkManager的默认pandas_datareader的预期行为,因为它使用反射来查找Worker类。因此,它需要是公共的,而不是内部类。

为您的Worker使用内部类的用例是什么? 如果您需要将一些其他参数传递给您的Worker,则可以定义一个自定义的WorkerFactory并在其中传递其他参数。