getContext(), getApplicationContext(), getBaseContext()和“this”之间的区别是什么?
虽然这是一个简单的问题,但我无法理解它们之间的基本区别。如果可能,请举一些简单的例子。
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() -仅返回当前正在运行的活动的上下文视图。