SharedPreferences在android程序中生成force close

时间:2013-12-07 17:43:18

标签: android sharedpreferences

我正在构建一个包含SharedPreferences的Android项目。

我的SharedPreferences工作正常,我在多项活动中进行了测试。但是在我为全局变量定义的类中,定义SharedPreferences会导致强制关闭(eclipse没有在代码中显示任何错误)。

public class Globals extends Application {

    final SharedPreferences s = getSharedPreferences("Prefs", MODE_PRIVATE);

}

有什么问题?

3 个答案:

答案 0 :(得分:1)

您应该传递Context并使用

SharedPreferences prefs = Context.getSharedPreferences( "Prefs", Context.MODE_PRIVATE);

答案 1 :(得分:0)

创建构造函数并将Context变量作为参数传递。任何想要使用此首选项的活动都必须传递活动。这是下面给出的代码:

public class Globals  extends Application {

    private Context context;

    public Globals (Context context) {
        this.context = context;
    }

    SharedPreferences myPref = context.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
}

答案 2 :(得分:0)

您无法在实际课程中运行getSharedPreferences()。您所做的一切都必须在应用程序的onCreate方法中。如果您尝试在类中运行它,它将失败,因为它尚未初始化。将其视为一项活动,因为活动和应用程序都有生命周期。

尝试以下方法:

public class Globals extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        final SharedPreferences s = getSharedPreferences("Prefs", MODE_PRIVATE);
    }
}