Рабочий пример;Внедрение контекста приложения в действия.
@Component
@module({AppModule.class})
public interface ApplicationComponent {
@ApplicationContext
Context getApplicationContext();
void inject(MyActivity activity);
}
/* Qualifiers */
import javax.inject.Qualifier;
@Qualifier
public @interface ApplicationContext {
}
/* app Module */
import dagger.Module;
@Module
public class AppModule {
private Context appContext;
public AppModule(@ApplicationContext Context _context) {
this.appContext = _context;
}
}
Теперь в вашем классе приложения;вам придется создать Dagger Tree;
public static ApplicationComponent appCompnent;
@Override
void onCreate() {
appCompnent = ApplicationComponent.builder().appModule(new AppModule(this)).create();
}
public static ApplicationComponent getApplicationComponent() {
return appComponent;
}
Теперь в вашей активности MyActivity;все, что вам нужно, это получить этот компонент и вызвать инъекцию.
У меня есть пост, в котором я перечислил основы Dagger2, и некоторые учебные ссылки надеются, что это поможет
Невозможнопонять концепцию внедрения зависимости от кинжала - Dagger 2 на android