Java 为什么可以';我是否可以在android活动的顶部创建共享首选项?

Java 为什么可以';我是否可以在android活动的顶部创建共享首选项?,java,android,global-variables,code-organization,Java,Android,Global Variables,Code Organization,当我在活动头部创建共享首选项时,我的应用程序在运行时失败。 另一方面,当我将共享首选项放在一个方法中时,应用程序会运行顺畅。 我想将共享首选项放在类的顶部,这样我就不必在每个方法中创建共享首选项 为什么我不能在全球范围内创建共享首选项?现在我明白了我不能将共享首选项创建为全局对象,有没有一种方法可以让我不必在每个方法上创建共享首选项?假设您的意思是在活动的全局范围内初始化它-因为活动在调用onCreate之前不是有效的上下文。在调用构造函数时(即初始化这些变量时),该类没有设置有效所需的所有数据

当我在活动头部创建共享首选项时,我的应用程序在运行时失败。 另一方面,当我将共享首选项放在一个方法中时,应用程序会运行顺畅。 我想将共享首选项放在类的顶部,这样我就不必在每个方法中创建共享首选项


为什么我不能在全球范围内创建共享首选项?现在我明白了我不能将共享首选项创建为全局对象,有没有一种方法可以让我不必在每个方法上创建共享首选项?

假设您的意思是在活动的全局范围内初始化它-因为活动在调用onCreate之前不是有效的上下文。在调用构造函数时(即初始化这些变量时),该类没有设置有效所需的所有数据,因此将其用作上下文将导致崩溃。

您可以将
SharedReferences
变量声明为类字段,但只有在
onCreate()
之前才能初始化它。