强制关闭后重置SharedPreferences

时间:2012-07-14 03:51:07

标签: java android save android-sharedpreferences

我已经能够在我的应用程序中成功实现共享首选项,但是如果我通过任务管理器终止应用程序,我遇到了重置/删除数据的问题。

我使用静态方法进行保存,这样我只需要一次该方法,并且可以在我的应用程序中随处调用它。

protected static synchronized void save(Context cntx){
    SharedPreferences preferences2 = cntx.getSharedPreferences("BluRealms", 0);
    SharedPreferences.Editor editor = preferences2.edit();
    editor.putBoolean("level", Stats.level);
    editor.commit();
}

一旦我杀了我的应用程序,我的所有数据都会被设置回我的SharedPreferences保存方法中的默认设置。

我也进行了一些搜索并发现了一些帖子,说明在清单文件中添加android:persistent =“true”会解决问题,但即使这样,数据仍会重置。


编辑:我想我发现了一些关于我的问题的信息。此问题突出显示三星Galaxy S手机无法正确保存SharedPreferences的问题,这是我正在测试的设备。 http://code.google.com/p/android/issues/detail?id=14359 - 尤其是评论6

关于这方面的任何更多信息都会很棒!

1 个答案:

答案 0 :(得分:4)

好的,我可以通过从我的保存方法中删除“protected static”来解决这个问题。

我没有调用全局保存方法,只是将save方法放在需要保存的每个类中,然后只调用onPause()和onDestroy()方法中的save方法。

我注意到,如果我在一个类中调用了save()太多次,当我关闭应用程序时,它似乎也会删除我的SharedPreferences。

提示

  

不要使用静态方法来获取或设置共享首选项