Android-アプリケーショングローバル取得Context


アプリケーションアーキテクチャが複雑な場合、多くのロジックはActivityクラスから離れ、純粋なJavaクラスになります.この場合、Contextを使用する必要がある場合は、どうすればいいですか?
この場合のグローバルContextの取得方法について説明します.
アプリケーションクラスのカスタマイズ
Androidには、アプリケーションが起動すると自動的に初期化されるアプリケーションクラスが用意されています.
独自のアプリケーションクラスをカスタマイズして、元のアプリケーションクラスから継承し、グローバルContextなどのプログラムのグローバルステータスを管理できます.
import android.app.Application;
import android.content.Context;

public class AppContext extends Application {

	private static Context context;

    @Override
    public void onCreate() 
    {
        context = getApplicationContext();
    }
    
    public static Context getContext()
    {
        return context;
    }
}

そしてAndroidManifestを修正します.xmlファイルは、デフォルトのアプリケーションクラスではなく、システムプログラムの起動時にMyApplicationクラスを初期化する必要があることを通知します.


注意ここでMyApplicationを指定するときは必ず完全なパッケージ名を付けてください
"cn.com.ista.pdachina.app.AppContext"
ああ、そうしないと、このクラスは見つかりません.
Contextをグローバルに取得するメカニズムを実現しました.その後、プロジェクトのどこでContextを使用するにしても、AppContextを呼び出すだけです.getContext()でいいです.