[英]SharedPreferences cleared if remove the app from recent activity android
I'm using SharedPreferences in my project with MODE_PRIVATE, when i cleared the app from recent activity list, and opens the app again, all my preference data is cleared. 我在MODE_PRIVATE中的项目中使用了SharedPreferences,当我从最近的活动列表中清除了该应用程序,然后再次打开该应用程序时,所有的首选项数据都被清除了。
I'm using this class fro setting and getting preference. 我正在使用此类来回设置并获得偏好。
public class Preferences {
private Context _context;
private SharedPreferences _preferences;
private Editor _editor;
private String prefName = "pref";
//=====
public Preferences(Context context){
_context = context;
_preferences = this._context.getSharedPreferences(prefName, Context.MODE_PRIVATE);
_editor = this._preferences.edit();
}
//=====
public Preferences commit(){
_editor.commit();
return this;
}
//=====
public Preferences set(String key, String value){
_editor.putString(key, value);
return this;
}
//=====
public String get(String key){
return _preferences.getString(key, "");
}
//=====
public Preferences set(String key, int value){
_editor.putInt(key, value);
return this;
}
//=====
public int getInt(String key){
return _preferences.getInt(key, 0);
}
//=====
public Preferences setBoolean(String key, boolean value){
_editor.putBoolean(key, value);
return this;
}
//=====
public void removeKey(String key){
_editor.remove(key);
}
//=====
public boolean getBoolean(String key){
return _preferences.getBoolean(key, false);
}
}
can any one help me ...?? 谁能帮我 ...??
change your set method like this 像这样更改您的设置方法
public Preferences set(String key, int value){
_editor.putInt(key, value);
_editor.commit();
return this;
}
you don't need separate commit() into independent method. 您不需要将单独的commit()放入独立的方法中。
good luck 祝好运
this is another example, in this example i create a value that save my city name and when my app lunched i check for existing , if exist the value of that key returned to me. 这是另一个示例,在此示例中,我创建一个保存我的城市名称的值,当我的应用午餐时,我检查是否存在(如果存在)该键的值返回给我。
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// define sp
sp=getSharedPreferences("test", Context.MODE_PRIVATE);
// get sp value if exist
if(sp.contains("EkbatanApp")){
String spResult=sp.getString("EkbatanApp", "");
}
}
//save key
public void SaveSettingOnClick(View v){
Editor editor=sp.edit();
editor.putString("EkbatanApp", "Borujerd");
editor.commit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.