实例化对象和调用getApplicationContext()之间的区别是什么?

时间:2018-05-17 18:50:22

标签: android

我继承了一个从Android.Manifest文件调用活动的Android应用

background-image: src(imagePath)

我已经查看该对象是否已经实例化并且无法找到它。所以我想知道这个调用是否强制对象的实例化。请注意,下一个电话是对某个应用方法的调用。

3 个答案:

答案 0 :(得分:0)

实例化对象正在创建一个对象实例,您使用new做什么。 这是一个不属于Android和java的OOP概念。

另一方面,getApplicationContext()是特定于Android的,在Activity中调用将返回已设置为Application实例的单例。应用程序只运行一个应用程序实例,它在应用程序的不同活动之间很常见,因此将一些需要从不同活动中访问的属性放在一个常见的位置,尽管它有一个警告作为应用程序可以在没有事先通知的情况下销毁。

如果使用自定义Application对象,则必须在Manifest中的application标记中声明

答案 1 :(得分:0)

  

所以我想知道这个调用是否强制对象的实例化

没有。在AndroidManifest.xml文件中,您会找到一个<application>元素,其中android:name属性指向此STXmaAplication类。这导致在您的进程启动时实例化对象而不是android.app.Application。当您拨打电话时,该对象已存在。

答案 2 :(得分:-1)

两者都返回相同的ApplicationContext。所以没有区别。

最佳做法是使用单例方法在项目中的任何位置获取out = ... + out

ApplicationContext或任何地方拨打ApplicationContext.getInstance()

您的应用上下文类看起来像。

Activity, Fragment, Dialog, BroadcastReceiver,