java - 在应用程序的 onCreate() 中创建 Context 类型的静态成员变量可以吗?

标签 java android

可以在 android 中使用此模式,然后在需要应用程序上下文时使用 App.context 吗?
我想在枚举类中访问 getString(id) ,所以考虑这个解决方案。

public class App extends Application 
    public static  Context context;

    public App() {
        this.context = this;    
    }
}

最佳答案

规则是永远不要在正常生命周期之外保留对 Context 的强引用。当您的应用程序在使用时,Android 会管理 Application 实例 - 只要 Android 保持您的应用程序运行,就永远只有一个实例。简而言之,Application 上下文是您唯一可以保存引用的上下文,而不必担心它会泄漏。

但是,我认为最好在 onCreate() 中进行赋值,而不是在公共(public)构造函数中。除了少数异常(exception),对于 Android 管理的组件,onCreate() 应该是您开始运行自己的代码的地方。

@Override
public void onCreate() {
    super.onCreate();
    appContext = this;
}

关于java - 在应用程序的 onCreate() 中创建 Context 类型的静态成员变量可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714209/

相关文章:

android - Cordova 3.5.0 中的 map (多平台)

java - 更新ListView而不清除和闪烁

android - 改变imageview的像素颜色

android - 在 Android 12 中使用深度链接需要哪些更改

java - 用于 TomEE 7 上的 bean 验证的自定义异常映射?

java - 向不支持 Java Card 技术的智能卡添加小程序

java - java中的soap版本不匹配

android - 在不丢失现有数据的情况下将预填充表添加到数据库

java - 从 Java 代码获取 rabbitmq 队列中的消息计数

java - 获取四键的边界区域