我有一个使用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) {...}
答案 0 :(得分:0)
尝试此代码,
会话管理器代码:
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
Context context;
public static final String KEY_CHECKIN= "checkin";
public void setCheckin(boolean login){
editor = sharedPreferences.edit();
editor.putBoolean(KEY_CHECKIN,checkin);
editor.apply();
}
public boolean getCheckin(){
return sharedPreferences.getBoolean(KEY_CHECKIN,false);
}
在您的Java代码中:
SessionManager sessionmanager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sessionmanager = new SessionManager(this);
//签到条件
if(user checkedIn){
sessionmanager.setCheckin(true);}
///当用户再次打开应用程序时获取值:
if(sessionmanager.getCheckin()){}////proceed with your logic.
答案 1 :(得分:0)
除非您清除存储/缓存,否则SharedPreferences不会自行清除。