我需要在@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);
我希望,这是足够的信息来理解我的场景。如果有人需要,请追问。 谢谢
答案 0 :(得分:0)
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所述。