如何解决使用 hilt 在 @HiltWorker 中进行字段注入
我需要在@HiltWorker 中实现字段注入,但字段注入返回 null。这是我的工作代码。
import owid-covid-data.csv
keep if iso_code=="GBR"
keep date new_cases
gen date2 = date(date,"YMD")
format date2 %td
tsset date2 // Set data to time series format
tssmooth ma ma7=new_cases,window(6 1 0) // create the 7 day moving-average
twoway (bar new_cases date2) (line ma7 date2)
这是我的自定义工作管理器配置
@HiltWorker
public class BackgroundTasks extends Worker {
@Inject
SessionManager sessionManager;
@AssistedInject
public BackgroundTasks(@Assisted @NonNull Context context,@Assisted @NonNull WorkerParameters params) {
super(context,params);
}
@NonNull
@Override
public Result doWork() {
Timber.tag("TAGGGGGGG").i(sessionManager.getJwtModel().getUserName());
return Result.success();
}
}
这是我的清单文件,我将在其中删除工作管理器默认配置
Configuration myConfig = new Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build();
WorkManager.initialize(this,myConfig);
我希望,这是足够的信息来理解我的场景。如果有人需要,请追问。 谢谢
解决方法
WorkManager 应该由 Hilt 初始化。所以你不应该这样做
WorkManager.initialize(this,myConfig);
相反,您的 Application 类设置如下。
@HiltAndroidApp
class ExampleApplication : Application(),Configuration.Provider {
@Inject lateinit var workerFactory: HiltWorkerFactory
override fun getWorkManagerConfiguration() =
Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}
如here所述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。