如果从最近的活动android中删除应用程序,则清除SharedPreferences

时间:2014-10-11 06:10:34

标签: android sharedpreferences

我在项目中使用了MODE_PRIVATE的SharedPreferences,当我从最近的活动列表中清除应用程序,然后再次打开应用程序时,我的所有偏好数据都被清除。

我正在使用这个课程来设置和获得偏好。

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);
}

}

任何人都可以帮助我...... ??

2 个答案:

答案 0 :(得分:1)

像这样更改您的设置方法

public Preferences set(String key, int value){

    _editor.putInt(key, value);
    _editor.commit();
    return this;
}

你不需要单独的commit()进入独立的方法。

祝你好运

答案 1 :(得分:0)

这是另一个例子,在这个例子中,我创建了一个保存我的城市名称的值,当我的应用程序启动时,我检查是否存在,如果存在,该键的值将返回给我。

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();
    }