您好,我正在我的项目中尝试新的workermanager,但是我不知道如何将我的DbManager类注入到我的TaskWorker中,以便在WorkerManager的doWork()方法中使用dbmanager。也无法弄清楚由于TaskWorker对象在创建中隐藏了些什么。
代码示例
mWorkManager.beginUniqueWork(IMAGE_MANIPULATION_WORK_NAME,
ExistingWorkPolicy.APPEND,
OneTimeWorkRequest.from(TaskWorker.class));
public class TaskWorker extends Worker {
private static final String TAG = "TaskWorker";
@Inject
DbManager dbManager;
@NonNull
@Override
public WorkerResult doWork() {return null;}
}
}
发布于 2018-06-01 04:25:15
要在worker类中注入字段,首先需要在AppComponent中注入worker类:
fun inject(worker: TaskWorker)
然后在worker的doWork()中,需要调用inject:
if(applicationContext is MyApp){
var daggerAppComponent= DaggerAppComponent.builder().application(applicationContext as MyApp).build()
daggerAppComponent.inject(this)
}
https://stackoverflow.com/questions/50543908
复制相似问题