由于Worker
该类是由框架(WorkerManager
)创建的,因此如何在@Inject字段中使用Worker
?
您必须@Provides
在模块中使用注解来提供类。
首先创建一个包含提供类的模块的组件。
@Component(modules = {Module.class})
public interface Component1{
void inject(SyncWorker syncWorker);
}
模块类别
@Module
public class Module{
@Provides
public ISettingRepository getSettingRepo(){
return new ISettingRepository();
}
}
现在,在您的代码中编写一个构造函数,该构造函数用于将组件注入到您的worker类中。
public class SyncWorker extends Worker {
@Inject
ISettingRepository settingRepository;
public SyncWorker(){
DaggerComponent1.builder().build().inject();
}
@NonNull
@Override
public Result doWork() {
sync();
return Result.SUCCESS;
}
private void sync() {
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句