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