興味本位で Androidのソースを調べてみました。私が見つけたのは、それContext
が抽象メソッドを持つ抽象クラスであるということです:
public abstract Context getApplicationContext();
メソッドの実装につながったContextWrapper.java
拡張:Context.java
getApplicationContext()
@Override
public Context getApplicationContext() {
return mBase.getApplicationContext();
}
ただし、のコンストラクターで初期化されるmBase
型のオブジェクトへの参照です。Context
ContextWrapper
public ContextWrapper(Context base) {
mBase = base;
}
このmBase
参照はabstract
クラスを参照していますか?getApplicationContext()
から呼び出すときに実行されるコードがどこにあるのかわかりませんActivity
。