首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用dagger 2注入对象,如Worker中的DbManager,以便在doWork()方法#WorkerManager中执行数据库操作

使用dagger 2注入对象,如Worker中的DbManager,以便在doWork()方法#WorkerManager中执行数据库操作
EN

Stack Overflow用户
提问于 2018-05-26 22:46:38
回答 1查看 291关注 0票数 1

您好,我正在我的项目中尝试新的workermanager,但是我不知道如何将我的DbManager类注入到我的TaskWorker中,以便在WorkerManager的doWork()方法中使用dbmanager。也无法弄清楚由于TaskWorker对象在创建中隐藏了些什么。

代码示例

代码语言:javascript
复制
 mWorkManager.beginUniqueWork(IMAGE_MANIPULATION_WORK_NAME,
                ExistingWorkPolicy.APPEND,
                OneTimeWorkRequest.from(TaskWorker.class));

代码语言:javascript
复制
public class TaskWorker extends Worker {

    private static final String TAG = "TaskWorker";

    @Inject   
    DbManager dbManager;
    @NonNull
    @Override
    public WorkerResult doWork() {return null;}
}
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-01 04:25:15

要在worker类中注入字段,首先需要在AppComponent中注入worker类:

代码语言:javascript
复制
 fun inject(worker: TaskWorker)

然后在worker的doWork()中,需要调用inject:

代码语言:javascript
复制
 if(applicationContext is MyApp){
        var daggerAppComponent= DaggerAppComponent.builder().application(applicationContext as MyApp).build()
        daggerAppComponent.inject(this)
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50543908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档