2010-09-13 18 views
5

पर साझा की गई प्रतिक्रिया खो गई, मुझे एक अजीब समस्या मिली, कि मेरे ऐप के साझा पेंशन में फ़ोन रीबूट होने पर कुछ विशिष्ट कुंजी (सभी नहीं) खो गईं।एंड्रॉइड, फोन रीबूट

क्या आपने कभी इस समस्या को पूरा किया है? मैंने एक धारावाहिक वस्तु को स्टोर करने के लिए उस कुंजी का उपयोग किया और मैंने इसे अपने स्वयं के अनुप्रयोग वर्ग में किया।

public class Application extends android.app.Application { 

static String key = "favs"; 
SharedPreferences settings; 
public Favs favs; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    settings = PreferenceManager.getDefaultSharedPreferences(this); 
    String value = settings.getString(key, ""); 
    if (value != null && value.length() > 0) { 
     try { 
      Favs = (Favs) deSerialize(value.getBytes()); 
     } catch (Exception ex) { 
     } 
    } 
    if(favs == null) 
     favs = new Favs(); 
} 

public void storeFavss() { 
    if (favs == null) 
     return; 
    try { 
     byte[] bytes = serialize(favs); 
     if(bytes != null) 
     { 
      String s = new String(bytes); 

      settings.edit().putString(key, s); 
      settings.edit().commit(); 
     } 
    } catch (Exception ex) { 

    } 
} 
+1

कैच ब्लॉक है, जो इस मुद्दे को पिन ओर इशारा करते हुए में मदद कर सकता है में कुछ लॉग डाल दिया। – bhups

उत्तर

2

डिबगिंग के बाद, मैं यहां अपना स्वयं का सहायक दिखाऊंगा, उम्मीद है कि यह दूसरों की मदद कर सकता है।

  1. नीचे दिया गया कोड खराब है। ऐसा लगता है कि संपादन() विधि हर बार एक नई वस्तु देता है।

    settings.edit().putString(key, s); 
    settings.edit().commit(); 
    
  2. आप SharedPreference, Base64 इसमें कुछ धारावाहिक वस्तु बाइट्स की बचत कर रहे हैं!

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