我开始使用dagger 2.2,并且不推荐使用“组件”构build器中的模块方法。 这是我的应用程序组件: @Component(modules = ApplicationModule.class) public interface ApplicationComponent { void inject(Application application); } 和应用程序模块: @Module public class ApplicationModule { Application application; public ApplicationModule(Application application) { this.application = application; } @Provides @Singleton Application providesApplication() { return application; } } 这里是生成的类: @Generated( value = "dagger.internal.codegen.ComponentProcessor", comments = "https://google.github.io/dagger" ) public final class DaggerApplicationComponent implements ApplicationComponent { […]
我一直在用匕首工作一段时间。 而且我也困惑于为每个Activity / Fragment创build一个自己的组件/模块。 请帮我澄清一下: 例如,我们有一个应用程序,该应用程序有大约50个屏幕。 我们将按照MVP模式和DI的Dagger2执行代码。 假设我们有50个活动和50个主持人。 在我看来,通常我们应该像这样组织代码: 创build一个AppComponent和AppModule,它将提供应用程序打开时将使用的所有对象。 @Module public class AppModule { private final MyApplicationClass application; public AppModule(MyApplicationClass application) { this.application = application; } @Provides @Singleton Context provideApplicationContext() { return this.application; } //… and many other providers } @Singleton @Component( modules = { AppModule.class } ) public interface AppComponent { Context getAppContext(); […]
我在这里遵循指南: https : //github.com/ecgreb/dagger-2-testing-demo 我有我的应用程序/ src / main(注入和@Provides代码省略)下面的设置: public class FlingyApplication extends Application { @Singleton @Component(modules = { FlingyModule.class }) public interface FlingyComponent } @Module public class FlingyModule 在app / src / test中: public class TestFlingyApplication extends Application { @Singleton @Component(modules = { TestFlingyModule.class }) public interface TestFlingyComponent extends FlingyComponent } @Module public class TestFlingyModule […]
匕首2即将到来,但可用的例子甚至不会立即编译,文档是从Dagger 1复制粘贴replace。 有没有人有一个正确的应用程序在谷歌的匕首2的例子?