是否有不同的 Android 上下文?

Are there different Android contexts?

我认为 Android 上下文作为一个单独的对象工作,您可以通过不同的方式访问它。

但是,在我的项目中,我在 MainActivity 的嵌套 AsyncTask (onPostExecuteMethod) 中使用简单的 ArrayAdapter 创建了一个简单的微调器,我发现它使用 getApplicationContext()MainActivity.this.

  1. 白色文本 -> getApplicationContext()
  2. 文本变暗 -> MainActivity.this

你能解释一下吗?

每个上下文都与应用程序上下文相关,每个 activity 都有自己的子上下文,这些子上下文将与 activity 一起存在(并会随着 activity 一起被销毁)。

在您的示例中,根据您使用的上下文,您有不同的呈现,因为如果为活动分配了主题(以编程方式或在清单中),则活动使用 ContextThemeWrapper

您的应用程序中可能有一个深色主题,但 activity 有一个浅色主题。

getApplicationContext() 获得的 Context 并没有实现 Activity 所做的一切,特别是与 UI、主题、...

相关的东西

迄今为止我看到的最完整的解释:上下文, 什么上下文?

基本上:

  • 对与 UI 相关的所有内容使用 Activity。
  • 将应用程序上下文用于任何比 Activity 寿命更长的东西。