アプリケーションコンテキストをどこでも使用していますか? 質問する

アプリケーションコンテキストをどこでも使用していますか? 質問する

Android アプリでは、次のアプローチに何か問題がありますか。

public class MyApp extends android.app.Application {

    private static MyApp instance;

    public MyApp() {
        instance = this;
    }

    public static Context getContext() {
        return instance;
    }

}

そして、コンテキストが必要な(もちろん漏洩しない)あらゆる場所(SQLiteOpenHelper など)に渡しますか?

ベストアンサー1

このアプローチには潜在的な問題がいくつかありますが、多くの状況 (あなたの例など) ではうまく機能します。

GUI特に、を必要とするを扱う場合には注意が必要ですContext。たとえば、アプリケーション コンテキストを に渡すと、例外が発生します。一般的に言えば、あなたのアプローチは優れています。内でを使用し、のスコープ外のコンテキストを に渡す場合は をLayoutInflater使用するのがよい方法です。Activity's ContextActivityApplication ContextActivityメモリリークを回避する

また、パターンの代替getApplicationContext()として、オブジェクトContext(アクティビティなど)を呼び出すショートカットを使用してアプリケーション コンテキストを取得することもできます。

おすすめ記事