二者返回结果是相同的
区别:getApplication()是用来获取Application实例的,但是该方法只在Activity和Service中才能调用;在一些其他的地方,比如说当我们在BroadcastReceiver中也想获取Application实例,这时就需要使用getApplicationContext()方法
getApplicationContext我们知道是一个抽象方法,他的真正实现是在ContextImpl中:
@Override
public Context getApplicationContext() {
return (mPackageInfo != null) ?
mPackageInfo.getApplication() : mMainThread.getApplication();
}
再来看看getApplication方法(只存在于Activity和Service中):
public final Application getApplication() {
return mApplication;
}
分析源码可以知道,getApplicationContext的mApplication也就是getApplication方法中的mApplication