I found that the preferences XML will break very easily if you store some Strings containing 'special' characters. I am not sure what exactly those are, but when I stored things like
putString("someurl", "http://xyz/?a=b&c=d") the preference file becomes empty next time I try to open it. My solution is to quote all Strings that I put into the SharedPreferences. After that my problems seems to go away. I couldn't find a Base64 encoder in the Android API, so I wrote a quick-and-dirty PrefQuote class: http://code.google.com/p/nubi/source/browse/trunk/android/nubinews/src/com/nubinews/reader/PrefQuote.java putString("someurl", PrefQuote.quote("http://xyz/?a=b")) Hope this helps On Thu, Apr 23, 2009 at 9:56 AM, bo <bost...@gmail.com> wrote: > > I do SharedPreferences.Editor.commit() in couple of places. 1. > Immediately after setting the preference. 2. in Activity#onStop. > Nevertheless when I restart the app the preferences are gone. Any more > ideas? I do create prefs programmaticaly after harvesting these from > user (username/pwd) > > On Apr 21, 11:00 pm, Chander Pechetty <cspeche...@gmail.com> wrote: > > Sorry, I was referring to the settings created using > > PreferenceActivity screen using xml. Your actual preference values do > > not help much in diagnosing the issue. > > > > Example snippet from loadingpreferencesfrom xml: > > <CheckBoxPreference android:key="pref1" > > android:title="pref1" > > android:summaryOn="SummaryOn" > > android:summaryOff="SummaryOff" > > android:defaultValue="true" > > android:persistent="true"/> > > > > Forpreferencescreated programatically, you can use > > Preference.setPersistent(true); > > > > If no Settings screen is present, and everything is through your > > program, then batch SharedPreferences.Editor.commit()'s should be > > fine. > > > > I had a similar problem as yours, but have not faced it again so far. > > Other than the known issue mentioned in the previous post, I don't > > know what else the problem could be unless you post your code > > perhaps... > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---