首页 > 解决方案 > SharedPreferences 可以不保存吗?

问题描述

我有一个应用程序使用 SharedPreferences 来记录用户的签入或签出状态。如果签入被按下,它的按钮是灰色的,签出变得可用,相反的工作也是如此。

然而,一些用户告诉我,“有时”他们会在第二天再次签到,并且结帐仍然可用。

我怀疑他们忘记点击它,但我想知道这个 SharedPreferencces 是否有机会自行清除?

这是我保存签入状态的代码的一部分:

SharedPreferences preferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putInt("statuscheckin", 1);    //1 for checkin, 0 for checkout            
            editor.commit();

这是我检查的部分

if (getSharedPreferences("MyPreferences", Context.MODE_PRIVATE).getInt("statuscheckin", 0) == 1) {...}

标签: androidsharedpreferences

解决方案


除非您清除存储/缓存,否则 SharedPreferences 不会自行清除。

  • 确保您不会因任何情况发生而自行清除它。
  • 如果您仅获取默认值,则您可能会在提交该值之前使用它。

推荐阅读