可以在 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/