所以我有这个可注射的课程:
@Singleton
public class FriendMessageListImpl {
@Inject RiotRosterManager riotRosterManager;
@Singleton
@Inject
public FriendMessageListImpl() {
}
}
我唯一的组件是在应用程序类中注入的:
appComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.build();
@Singleton
@Component(
modules = {
AppModule.class
}
)
public interface AppComponent {
/**
* Core
*/
void inject(...);
}
第一次从后台服务中注入了对象,它始终在运行。
对象应该是具有应用程序范围的单例,这意味着只要服务存在,就有一个实例。我不确定是否是这种情况,但出于某种原因,单身人士似乎没有应用范围。那么我有什么方法可以强制它吗?考虑到代码应该考虑哪个范围?
根据我的理解,我只有一个在应用程序类中创建的组件,而对象本身是通过构造函数注入的,它与组件共享相同的范围。我错了吗?
答案 0 :(得分:0)
根据您的描述,似乎您的后台服务在首次启动应用程序后不断运行,因此Application对象保持活动状态(直到服务停止并且活动结束)。 这似乎很好,您不需要再次创建图表,只需获取现有实例。