我试图做一个检查器,我想保存一个值到SharedPreferences.但我不知道它是否有效
这个我做的保存值是:*
SharedPreferences prefs = getSharedPreferences("PREFERENCE",MODE_PRIVATE); boolean firstrun = prefs.getBoolean("firstrun",true); db = openOrCreateDatabase("value.db",Context.MODE_PRIVATE,null); // optional CursorFactory if (firstrun) { SharedPreferences.Editor editor = prefs.edit(); db.execsql("CREATE TABLE startValue (ID Integer Primary Key,myValue Integer)"); db.execsql("INSERT INTO startValue (myValue) VALUES (2)"); editor.putBoolean("firstrun",false); editor.apply(); } // Save the state getSharedPreferences("PREFERENCE",MODE_PRIVATE) .edit() .putBoolean("firstrun",false) .commit();
而为了清除另一个活动的预告是:
try{ db = openOrCreateDatabase("value.db",null); // optional CursorFactory db.execsql("DROP TABLE IF EXISTS startValue"); db.close(); SharedPreferences preferences = getPreferences(0); SharedPreferences.Editor editor = preferences.edit(); editor.remove("firstrun"); editor.clear(); editor.commit(); this.finish(); } catch(sqlException ex) { //catch error here }
问题
但是当我看到它没有清除偏好的时候我进行测试.我做错了吗?
解决方法
要清除SharedPreferences,请使用此选项
SharedPreferences preferences = getSharedPreferences("PREFERENCE",Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.clear(); editor.commit();
希望这能帮助你.