前回はApplicationを継承したクラスについて紹介した。
https://qiita.com/QiitaD/items/549fb2143b2774c30d72
今回は、そのクラスを使ってApplicationContextをどこからでも呼び出す実装の仕方について紹介する。
実装
メンバ変数にインスタンスを格納しておくことで、このクラスのgetメソッドからインスタンスを取り出すことができる。
public class MyApplication extends Application {
//このクラスのインスタンスを保持しておくためのメンバ変数
private static MyApplication myApplication = null;
@Override
public void onCreate() {
super.onCreate();
//onCreate()が呼び出されると、インスタンスをメンバ変数に格納
myApplication = this;
}
//メンバ変数に保持したインスタンスをgetするメソッド
public static MyApplication getMyApplication() {
return myApplication;
}
}
これでMyApplicationクラスのインスタンスを取得できるので、そこから以下のようにしてApplicationContextを取得できる。
Context context = MyApplication.getMyApplication().getApplicationContext();