2015-07-03 43 views
0

我有ApplicationComponent提供ApiModule和其他如何为其他片段提供匕首依赖?

@PerApplicationScope 
@Component(
     modules = {ApiModule.class, ApplicationModule.class} 
) 
public interface ApplicationComponent { 

    void inject(MainActivity activity); 
} 

我的应用程序的启动建设,这个组件,例如:

@Override 
public void onCreate() { 
    super.onCreate(); 

    component = DaggerApplicationComponent.builder() 
      .applicationModule(new ApplicationModule(this)) 
      .apiModule(new ApiModule()) 
      .build(); 
} 

只有在我最初的片段可我得到响应某些API响应我可以创建Player,应该在所有其他片段之间共享。

我该如何告诉Dagger有新的依赖项?

回答

0

使用Dagger可以使用组件范围,如果您希望跨应用程序生命周期使用同一个对象实例,则必须在应用程序级别组件中将依赖项作为@Singleton提供。

您可以使用自定义注释为片段活动创建自定义作用域,以在该图生命周期中提供相同的ApiModule实例。

这里存在与匕首扮演一个样本项目作用域

https://github.com/joesteele/dagger2-component-scopes-test

在这里,一个伟大的职位有关此主题的

http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/