gpt4 book ai didi

android - 使用 Android 的 getBaseContext、getApplicationContext 或使用 Activity 的 "this"的区分规则

转载 作者:IT王子 更新时间:2023-10-29 00:00:19 24 4
gpt4 key购买 nike

我在谷歌上搜索了很多这个问题,并发现了许多关于何时使用 getBaseContextgetApplicationContext 或 Activity 自己的 this 的不同建议指针。

三个经常出现并且似乎很有意义的规则是 -

  1. 用于长期引用上下文 Activity 应该使用 getApplicationContext只要你的存在,它就存在应用存在
  2. 对于生命周期为他们的 Activity ,他们自己的 Activity 上下文 (this) 应该是用过
  3. 静态存储上下文指针只有非常小心(并且,如果可能,根本不可能)

假设这些都是正确的,那么 getBaseContext 有什么用?

我见过很多使用 -

创建新 Intent 的示例
Intent intent = new Intent(getBaseContext(), myClass.class);

相对于 -

Intent intent = new Intent(this, myClass.class);

哪种方法是正确的或推荐的方法,为什么?

最佳答案

getBaseContext() 是 ContextWrapper 的方法。而 ContextWrapper 是,“Context 的代理实现,它简单地将其所有调用委托(delegate)给另一个 Context。可以子类化以修改行为而不更改原始 Context。” (根据 javadocs)

所以这用于将调用委托(delegate)给另一个上下文。

关于android - 使用 Android 的 getBaseContext、getApplicationContext 或使用 Activity 的 "this"的区分规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com