You have to provide class using @Provides
annotation in the module to inject.
First create a component containing a module which will provide the class.
@Component(modules = {Module.class})
public interface Component1{
void inject(SyncWorker syncWorker);
}
Module Class
@Module
public class Module{
@Provides
public ISettingRepository getSettingRepo(){
return new ISettingRepository();
}
}
Now write in your code, a constructor that is used to inject the component into your worker class.
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() {
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…