我在一个使用干净架构概念的项目中使用优先级作业队列。问题是:要使用优先级作业队列执行 DI,我需要创建一个 BaseJob 作业,如下所示:
abstract public class BaseJob extends Job {
@Retention(RetentionPolicy.SOURCE)
@IntDef({UI_HIGH, BACKGROUND})
public @interface Priority {
}
public static final int UI_HIGH = 10;
public static final int BACKGROUND = 1;
public BaseJob(Params params) {
super(params);
}
protected boolean shouldRetry(Throwable throwable) {
return true;
}
public void inject(ApplicationComponent appComponent) {
}
问题在于:
public void inject(ApplicationComponent appComponent) {
}
我需要访问位于表示层中的 ApplicationComponent,但由于我的 BaseJob 位于数据层中,因此我无权访问它。
如果我让数据层知道表示,我将打破干净架构的原则。
有谁知道我该怎么做?