6

すべてのアクティビティで使用できるようにしたい GameStateManager シングルトンがあります。特に、個々のアクティビティ コンテキストの代わりにアプリケーション コンテキストを使用して、EventManager で発生したイベントをリッスンする必要があります。

GameStateManager はシングルトン アノテーションでマークされます

Application.OnCreate 中に GameStateManager を挿入しようとしました (申し訳ありませんが、コピーして貼り付けたのではなく、メモリから以下のスニペットを入力したため、間違っている可能性があります)

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

}

GameStateManager のインスタンスはアプリケーション コンテキストで構築され、シングルトンとして注釈が付けられているため、後でアプリケーション コンテキストで使用できると考えました。私が気付いたのは、GameStateManager をアクティビティに挿入したときに、実際にはアクティビティ コンテキストに関連付けられた新しいシングルトンを取得したことです。つまり、本質的に私は2つのシングルトンを持っています:)

アプリケーションコンテキストに接続された真の「シングルトン」を持つ方法についてのアイデアはありますか?

ありがとう!

4

2 に答える 2

0

RoboGuiceはGuiceの下に構築されているため@Singelton、1 つのインスタンスにつき 1 つのインスタンスを保証するアノテーションを使用することができます。Injector

サンプルアプリケーションを見てください

于 2012-12-21T12:30:35.133 に答える