相同
二者使用结果相同,我们写个代码分别打印二者返回结果,发现两个方法获取的是同一个对象。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Application application = getApplication();
Log.i("WY", "打印getApplication:" + application);
Context pContext = getApplicationContext();
Log.i("WY", "打印getApplicationContext:" + pContext);
}
}
区别
getApplication()是用来获取Application实例的,但是该方法只在Activity和Service中才能调用;在一些其他的地方,比如说当我们在BroadcastReceiver中也想获取Application实例,这时就需要使用getApplicationContext()方法
本文通过一个简单的示例对比了在Android开发中使用getApplication()与getApplicationContext()两种方法获取Application实例的区别。这两种方法虽然都能获取到相同的对象实例,但其适用场景不同:前者仅能在Activity和服务中使用,而后者则可以在更广泛的场景下获取到Application对象。

4万+

被折叠的 条评论
为什么被折叠?



