Android getApplicationContext和classname.this之间的差异

Android getApplicationContext和classname.this之间的差异,android,android-context,Android,Android Context,当我使用列表视图并且我有一个自定义的基本适配器类时,当基本适配器由getApplicationContext和classname实例化时,我在列表视图中得到不同的文本颜色。 通过getApplicationContext我得到了白色的文本,但是classname。这是黑色的。有人能给我解释一下吗 ActivityName。这是指活动上下文。getApplicationContext()引用应用程序上下文 大多数情况下,最好使用活动上下文 检查Commonware提供的答案。对这个话题有详细的解释

当我使用列表视图并且我有一个自定义的基本适配器类时,当基本适配器由
getApplicationContext
classname实例化时,我在列表视图中得到不同的文本颜色。

通过
getApplicationContext
我得到了白色的文本,但是
classname。这是黑色的。有人能给我解释一下吗

ActivityName。这是指活动上下文。getApplicationContext()引用应用程序上下文

大多数情况下,最好使用活动上下文

检查Commonware提供的答案。对这个话题有详细的解释

从上面的链接中引用

以下是不在任何地方使用getApplicationContext()的原因:

  • 它不是一个完整的上下文,支持活动所做的一切。使用此上下文尝试执行的各种操作都将失败,主要与GUI有关

  • 如果getApplicationContext()中的上下文保留了您对它的调用所创建的内容,而您没有清理这些内容,那么它可能会造成内存泄漏。对于一个活动,如果它抓住了某个东西,一旦该活动被垃圾收集,其他所有东西也会被清除。应用程序对象在进程的生命周期内保持不变


  • 基本上,它们都是上下文的实例,但区别在于应用程序实例与应用程序的生命周期相关联,而活动实例与活动的生命周期相关联。因此,他们可以访问有关应用程序环境的不同信息

    编辑


    在找到答案时,它将帮助您

    了解您可能对特定活动应用了不同的主题,然后是整个应用程序。这可能会导致使用的上下文的样式不同。实际上,我在所有活动中都使用了android:theme=“@style/theme.VPI”。请查看我编辑的答案…非常感谢,但我真的无法理解为什么两个上下文中的文本颜色不同。请阅读答案中的第1点。也许是原因。给我们看一些代码。是的,你是对的,也许我应该阅读上下文参考carefully@Shiv检查了链接。这可以归结为上面答案中的第1点。也许正是因为这个原因,我在你的博文中找到了我的答案:)亲爱的。。。很高兴我能帮助你