gpt4 book ai didi

android - 如何为 worker 类(Class)实现 Dagger ?

转载 作者:IT老高 更新时间:2023-10-28 23:13:01 31 4
gpt4 key购买 nike

既然Worker类是由框架(WorkerManager)创建的,我们如何在Worker中使用@Inject字段?

最佳答案

您必须在要注入(inject)的模块中使用 @Provides 注释来提供类。

首先创建一个包含提供类的模块的组件。

@Component(modules = {Module.class})
public interface Component1{

void inject(SyncWorker syncWorker);
}

模块类

@Module
public class Module{

@Provides
public ISettingRepository getSettingRepo(){
return new ISettingRepository();
}

}

现在在您的代码中编写一个构造函数,用于将组件注入(inject)您的工作类。

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() {

}
}

关于android - 如何为 worker 类(Class)实现 Dagger ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462223/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com