Context的个数:
Context 的数量 = Activity的数量+Service的数量+Application(1).
在Activity或者Service中我们通过getApplication()获取App对象进行操作,
public class Activity extends ContextThemeWrapper
implements LayoutInflater.Factory2,
Window.Callback, KeyEvent.Callback,
OnCreateContextMenuListener, ComponentCallbacks2,
Window.OnWindowDismissedCallback {
......
public final Application getApplication() {
return mApplication;
}
......
}
public abstract class Service extends ContextWrapper implements ComponentCallbacks2 {
......
public final Application getApplication() {
return mApplication;
}
......
}
在其它的地方我们则可以获取getApplicationContext()方法来获取App对象
class ContextImpl extends Context {
......
@Override
public Context getApplicationContext() {
return (mPackageInfo != null) ?
mPackageInfo.getApplication() : mMainThread.getApplication();
}
......
}
So,App对象其实就是一个特殊的Context对象.