在Android中保存共享偏好设置的问题

7

我现在正在尝试在关闭应用程序时保存变量,并在重新打开应用程序时获取该变量。我不知道自己是否做得正确。我的变量名为count,希望能够保存和恢复它。这样做对吗?如果是,为什么它不起作用?如果不是,我需要改变什么?(我显然正在使用SharedPreferences)

protected void onPause(){
   super.onPause();


  SharedPreferences settings = getSharedPreferences(PREFS_COUNT, 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putInt("count", count);
  editor.commit();
}
@Override
protected void onResume(){
    super.onResume();
    SharedPreferences settings = getSharedPreferences(PREFS_COUNT, 0);
    count = settings.getInt("count", count);
}

“为什么它不工作?” -> 能否更具体一些?您是否收到了错误信息?您的值是否不正确?您是否运行了调试器? - JRL
应用程序加载正常,但无法保存变量。 - Keenan Thompson
绝对没有错误,但我让它工作了。 - Keenan Thompson
1个回答

6

1
啊,我明白了。我忘记在“Oncreate bundle”中加载偏好设置了......谢谢。 - Keenan Thompson
1
有趣的是,这解决了我的问题,尽管我不知道原因,我使用了这样的调用:getSharedPreferences(MyClass.getSimpleName(), 0); 这应该是相当恒定的... - joecks
重点不在于你需要静态字符串,而在于你需要在整个应用程序中使用一个共同的首选项文件,对吗? - Victor Grazi
我的SharedPreferences以前无法工作,现在在将文件名设置为类中的static final之后可以工作了。我想那确实是一个必要条件。 - ravemir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接