getContext(), getApplicationContext(), getBaseContext()和“this”之间的区别是什么?

虽然这是一个简单的问题,但我无法理解它们之间的基本区别。如果可能,请举一些简单的例子。


当前回答

这个:当前类对象

getContext():返回当前活动的上下文

getApplicationContext():返回应用程序中正在运行的所有活动

其他回答

View.getContext(): Returns the context the view is currently running in. Usually the currently active Activity. Activity.getApplicationContext(): Returns the context for the entire application (the process all the Activities are running inside of). Use this instead of the current Activity context if you need a context tied to the lifecycle of the entire application, not just the current Activity. ContextWrapper.getBaseContext(): If you need access to a Context from within another context, you use a ContextWrapper. The Context referred to from inside that ContextWrapper is accessed via getBaseContext().

上下文是:

一个抽象类,它的实现由Android系统提供。 它允许访问特定于应用程序的资源和类,以及 对应用程序级操作的向上调用,例如启动活动, 广播和接收意图等。

上下文为新创建的组件提供有关活动或应用程序的信息。

应该为新创建的组件提供相关上下文(无论是应用程序上下文还是活动上下文)

因为Activity是Context的子类,所以可以使用它来获取Activity的上下文

getApplicationContext()——返回应用程序中运行的所有活动的上下文。

getBaseContext()—当您想要从您可以访问的应用程序中的另一个上下文访问Context时。

getContext()——它只返回当前正在运行的活动的上下文视图。

This - it's引用当前类对象

它引用当前活动类对象,而活动继承上下文,因此必须在可以使用上下文或活动的地方使用它。

getApplicationContext() -返回应用程序中运行的所有活动的上下文。 getBaseContext() -如果你想从应用程序中的另一个上下文访问Context,你可以访问。 getContext() -仅返回当前正在运行的活动的上下文视图。