groovy implementation 'com.google.dagger:dagger-android:2.x' implementation 'com.google.dagger:dagger-android-support:2.x' annotationProcessor 'com.google.dagger:dagger-android-processor:2.x' public class MyDependency { public void doSomething() { // do something } } public class MyActivity extends AppCompatActivity { @Inject MyDependency myDependency; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AndroidInjection.inject(this); myDependency.doSomething(); } } public class MyApplication extends Application implements HasAndroidInjector { @Inject DispatchingAndroidInjector<Object> androidInjector; @Override public void onCreate() { super.onCreate(); DaggerAppComponent.builder() .application(this) .build() .inject(this); } @Override public AndroidInjector<Object> androidInjector() { return androidInjector; } } @Singleton @Component(modules = {AndroidInjectionModule.class, AppModule.class}) public interface AppComponent { void inject(MyApplication application); @Component.Builder interface Builder { @BindsInstance Builder application(Application application); AppComponent build(); } } @Subcomponent(modules = MyActivityModule.class) public interface MyActivityComponent extends AndroidInjector<MyActivity> { @Subcomponent.Builder abstract class Builder extends AndroidInjector.Builder<MyActivity> {} } @Module(subcomponents = MyActivityComponent.class) public abstract class AppModule { @Singleton @Provides static MyDependency provideMyDependency() { return new MyDependency(); } } @Module public abstract class MyActivityModule { @Binds abstract Context bindContext(MyActivity activity); }


上一篇:
下一篇:
切换中文