使用RoboGuice 2.0的Android应用程序 - 如何使用Application上下文注入Singleton

Erd*_*rds 6 android dependency-injection guice roboguice

我有一个GameStateManager单例,我想让我的所有活动都可用.特别是我希望它使用Application Context而不是单独的Activity Context来监听使用EventManager触发的事件.

GameStateManager标有单例注释

我试着在Application.OnCreate期间注入GameStateManager(抱歉,从内存中输入以下代码片段,没有复制和粘贴,所以可能不正确)

public void OnCreate(){
    GameStateManager gameStateManager = RoboGuice.InjectMembers(this.getApplicationContext(), new GameStateManager())

}
Run Code Online (Sandbox Code Playgroud)

我认为GameStateManager的实例将使用应用程序上下文构造,因为它被注释为单例,因此稍后可以使用应用程序上下文.我注意到的是,当我将GameStateManager注入一个活动时,我实际上得到了一个与活动上下文相关联的新单例.所以本质上我有2个单身:)

关于如何拥有一个连接到Application上下文的真正"单例"的任何想法?

谢谢!

Eug*_*nov 0

由于RoboGuice是在Guice下构建的,因此您可以尝试使用@Singelton注释来保证每个实例一个实例Injector

查看示例应用程序