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 <[email protected]> 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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---