2012-01-03 19 views
6

मेरे पास मेरे आवेदन में 2 प्रक्रियाएं हैं I एक प्रक्रिया से मैं डेटा को SharedPreferences में सहेजता हूं। दूसरी प्रक्रिया से - पुनर्प्राप्त करें। जब मैं डेटा पुनर्प्राप्त करता हूं, तो मुझे पुराने डेटा के साथ SharedPreferences प्राप्त होता है (मैं xml फ़ाइल की जांच करता हूं और देखता हूं कि वर्तमान में फ़ाइल और डेटा जो डेटा प्राप्त हुआ था) अलग हैं। ऐसा लगता है कि इस डेटा को कैश किया गया था। मैंने बचत विधियों को बदल दिया (प्रतिबद्ध/लागू) लेकिन कोई परिणाम नहीं। पुनश्च: सिर्फ उदाहरण के लिए 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

हम करने के लिए कुछ कोड को देखने के लिए होगा जब है देखें कि त्रुटि –

+0

है, मुझे लगता है कि यह इस स्थिति में उपयुक्त नहीं है। मैं SharedPreference के साथ सरल काम का वर्णन करता हूं। शायद मेरी स्थिति में कोई "नुकसान" हैं? – x90

+0

सुनिश्चित करें कि कुंजी-मूल्य जोड़ी में कुंजी समान है। –

उत्तर

17

समाधान आवश्यक झंडे को Context.MODE_MULTI_PROCESS फ्लैग जोड़ने खुला साझा वरीयता (एपीआई स्तर 11 और में उपलब्ध है)

+0

धन्यवाद! आपने मेरा दिन बचाया –

संबंधित मुद्दे