Первый раз с использованием Dagger2.Модуль Dagger2: как получить контекст для перехода к конструктору класса, который я хочу предоставить
В моем приложении для Android у меня есть класс MyApplication, который расширяет приложение. У меня также есть класс ImageAssistant, который представляет собой набор связанных методов обработки изображений. В моем классе MyApplicaiton я использовал экземпляр ImageAssistant для всех действий, которые нужно использовать.
Теперь я пытаюсь заставить его работать с Dagger2, но я не знаю, как передать контекст в модуле, который обеспечивает ImageAssistant
Это как мой код выглядел:
public class ImageAssistant {
Context context;
public ImageAssistant(Context context){
this.context = context;
}
// A bunch of methods...
}
public class MyApplication extends Application {
public ImageAssistant imageAssistant;
public void onCreate() {
imageAssistant = new ImageAssistant(this);
}
}
Теперь, введите Dagger 2, вот что у меня есть
public class ImageAssistant {
Context context;
@Inject
public ImageAssistant(Context context){
this.context = context;
}
// A bunch of methods...
}
public class MyApplication extends Application {
@Inject
public ImageAssistant imageAssistant;
public void onCreate() {
}
}
в упаковке .modules:
AppModule.java
@Module
public class AppModule {
@Provides
ImageAssistant provideImageAssistant() {
return new ImageAssistant(); // HERE A CONTEXT IS NEEDED. WHERE TO GET IT FROM?
}
}
EDIT: Это как мой модуль выглядит, но я до сих пор не знаю, как связать все вместе:
@Module
public class AppModule {
private MyApplication application;
public AppModule(MyApplication application) {
this.application = application;
}
@Provides
Context provideApplicationContext() {
return this.application;
}
@Provides
ImageAssistant provideImageAssistant(ImageAssistant imageAssistant) {
return imageAssistant;
}
}
И это AppComponent:
@Singleton
@Component(modules = {AppModule.class})
public interface AppComponent {
ImageAssistant provideImageAssistant();
Context context();
}
спасибо, я попробую это! –
и как использовать ассистент изображения из активности? –
@ J.K Я отредактировал мой ответ :) – mklimek