2014-10-11 108 views
1

我在我的項目中使用SharedPreferences與MODE_PRIVATE,當我從最近的活動列表中清除應用程序,並再次打開該應用程序,我所有的首選項數據被清除。SharedPreferences清除,如果從最近的活動中刪除應用程序android

我正在使用這個類來設置和獲取偏好。

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

} 

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

+0

如何從最近的活動列表中清除應用程序? – greenapps 2014-10-11 06:14:09

+0

暫停主頁按鈕將顯示最近的應用程序的列表,並可以從那裏清除。 – Ankit 2014-10-11 06:16:35

+0

如果你剛剛用後退按鈕完成你的應用程序? – greenapps 2014-10-11 08:00:38

回答

1

改變你的設置方法類似這樣的

public Preferences set(String key, int value){ 

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

你不需要單獨的commit()爲獨立的方法。

好運

+0

我試過了你的概念,但它沒有任何區別。 – Ankit 2014-10-11 07:20:07

+0

這不是一個很好的主意,可以很容易的將它作爲公共場所使用,你可以很容易地將它作爲公共場所使用,我會爲你舉個例子 – 2014-10-11 08:41:18

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

我犯了一個非常愚蠢的錯誤,我使用了一個常量類來聲明鍵,鍵空了。感謝您的時間,現在我的代碼工作正常。 – Ankit 2014-10-11 08:57:04

相關問題