2017-04-11 8 views
2

Androidでアプリケーション後継のインスタンスを取得するために静的メソッドを使用するのは正しいですか?私はいくつかのオープンソースプロジェクトでは、このアプローチを見てきました:VLCShuttle静的メソッドからアプリケーションインスタンスを取得

public class MyApplication extends Application { 

    private static MyApplication sApplication; 

    public static MyApplication getInstance() { 
     return sApplication; 
    } 

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

     sApplication = MyApplication.this; 
    } 

} 
+0

私もこのアプリケーションでこれを行うとかなりうまく動作します。基本的には、アプリケーションが実行されている限り、そのインスタンスを使用することができます。 –

+0

目的を定義してください、私たちはより多くを対象に導くことができます。依存性注入(DI)を使用する別のアプローチがあります.Daggerはそのようなコンテキストで有用です。 – mpals

+0

私はリソースを取得するためにこれを使用し、トーストを表示します。私は間違いなく、ダガーを今のところ使いたくない。 –

答えて

3

はい。このアプローチは正しいです。これはあなたがフォローしているシングルトンパターンです。 static変数は常に正しい方法ですから、その単一の状態からどこでも維持したいと考えています。

アプリケーションが複数のプロセスで実行されない限り、安全です。プロセスごとに1対1の厳密なアプリケーションの比率があります。

私はこれをすべてのアプリケーションでも使用しています。

+1

素敵な答え、それはずっと前に私はあなたの最後の兆候を見た;) – rekire

関連する問題