簡體   English   中英

如果從最近的活動android中刪除應用程序,則SharedPreferences被清除

[英]SharedPreferences cleared if remove the app from recent activity android

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

}

誰能幫我 ...??

像這樣更改您的設置方法

public Preferences set(String key, int value){

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

您不需要將單獨的commit()放入獨立的方法中。

祝好運

這是另一個示例,在此示例中,我創建一個保存我的城市名稱的值,當我的應用午餐時,我檢查是否存在(如果存在)該鍵的值返回給我。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM