2012-01-03 63 views
6

我在我的應用程序中有2個進程。從一個過程中,我將數據保存到SharedPreferences。 從第二個過程 - 檢索。當我檢索數據時,我收到舊數據SharedPreferences(我檢查xml文件並查看當前收到的文件和數據中的數據是不同的)。它看起來像這個數據被緩存。我更改了保存方法(提交/應用),但沒有結果。 PS:只是舉例http://pastebin.com/Zx2ffvSg共享首選項中的數據緩存

//saving 
{ ... 
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_PRIVATE); 
    SharedPreferences.Editor prefsEditor = myPrefs.edit(); 
    prefsEditor.putString(MY_NAME, "Sai"); 
    prefsEditor.putString(MY_WALLPAPER, "f664.PNG"); 
    prefsEditor.commit(); 
... } 

//retrieving 
// when i call getData() I put "this" as argument. 
public void getData(Context context){ 
SharedPreferences myPrefs = context.getSharedPreferences("myPrefs", MODE_PRIVATE); 
...} 
+0

我們不得不看到一些代碼看看錯誤在哪裏 – 2012-01-03 17:10:04

+0

我認爲它不適合這種情況。我用SharedPreference描述了簡單的工作。也許在我的情況下有任何「陷阱」? – x90 2012-01-03 17:50:57

+0

確保鍵值對中的鍵是相同的。 – 2012-01-03 20:07:14

回答

17

解決的辦法是增加neccesary標誌Context.MODE_MULTI_PROCESS標誌時,打開的共享偏好(提供API等級11以上)

+0

謝謝!你拯救了我的一天。 – 2015-12-07 12:56:23