[android-developers] Re: Android shared preferences assignments not persisting between emulator sessions

2011-04-22 Thread Zsolt Vasvari
No idea about the MODE_PRIVATE stuff, but I use
PreferenceManager.getDefaultSharedPreferences() and it works fiine.
Why do you need to control the file name?

On Apr 23, 12:15 pm, roschler  wrote:
> I am using the following code to save data to my Android application's
> shared preferences:
>
>     private SharedPreferences getOurSharedPreferences() {
>         return getSharedPreferences(SHARED_PREFS_FILENAME,
> MODE_PRIVATE);
>     }
>
>     SharedPreferences sharedPrefs = getOurSharedPreferences();
>     SharedPreferences.Editor editor = sharedPrefs.edit();
>     editor.putString(keyName, theString);
>     if (!editor.commit())
>         throw new RuntimeException("Unable to save new string.");
>
>     // Get it back as a test.
>     String s2 = getStringFromStorage(keyName);
>
> Where SHARED_PREFS_FILENAME is a private final static string and
> keyName is the name of whatever key I'm currently using as a field
> name. The commit works fine, I don't get an exception. As you can see
> I added a test that retrieves the recently committed string and when I
> check it (s2) the value is fine. So I am not having any problems with
> shared preferences storage during the lifetime of my app. However,
> when I relaunch the application in the emulator the shared preferences
> storage area is empty and I can't find the values I stored in the last
> emulator session. I did some reading and as far as I can see the
> stored values should persist across sessions, apparently they are
> saved in an XML file belonging to the emulator. Yet I am having
> problems.
>
> Can anyone tell me why my shared preferences storage values are not
> persisting between Android emulator sessions?
>
> -- roshcler

-- 
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


[android-developers] Re: Android shared preferences assignments not persisting between emulator sessions

2011-04-23 Thread roschler
@Kostya, no I don't use "Wipe Data".

I don't know what the exact underlying problem was at this point but I
managed to fix things by manually deleting the sharedpreferences file
from the emulator's shared_prefs folder while in the ADB shell, and
then recreating it as an empty file using "echo -n >app_global".  Note
"app_global" is just an arbitrary name I chose for the
sharedpreferences file.  I can't be certain, but it looks like the
emulator will not recreate the sharedpreferences file if you delete it
yourself manually, like I did when I was having trouble persisting
sharedpreferences writes between emulator sessions and tried that to
fix the problem.  Now everything works fine.

-- roschler

On Apr 23, 3:28 am, Kostya Vasilyev  wrote:
> Robert,
>
> Do you start the emulator with "Wipe data" option, by any chance?
>
> If you are, that explains it, as wiping the data means well, wiping
> the data.
>
> The preferences are stored in the file system of the emulated Android
> device, just like on a real phone, not directly within the host
> computer's file system.
>
> You can find the files under:
>
> /data/data//shared_prefs
>
> -- Kostya
>
> 23.04.2011 10:02, Zsolt Vasvari пишет:
>
>
>
>
>
>
>
>
>
> > No idea about the MODE_PRIVATE stuff, but I use
> > PreferenceManager.getDefaultSharedPreferences() and it works fiine.
> > Why do you need to control the file name?
>
> > On Apr 23, 12:15 pm, roschler  wrote:
> >> I am using the following code to save data to my Android application's
> >> shared preferences:
>
> >>      private SharedPreferences getOurSharedPreferences() {
> >>          return getSharedPreferences(SHARED_PREFS_FILENAME,
> >> MODE_PRIVATE);
> >>      }
>
> >>      SharedPreferences sharedPrefs = getOurSharedPreferences();
> >>      SharedPreferences.Editor editor = sharedPrefs.edit();
> >>      editor.putString(keyName, theString);
> >>      if (!editor.commit())
> >>          throw new RuntimeException("Unable to save new string.");
>
> >>      // Get it back as a test.
> >>      String s2 = getStringFromStorage(keyName);
>
> >> Where SHARED_PREFS_FILENAME is a private final static string and
> >> keyName is the name of whatever key I'm currently using as a field
> >> name. The commit works fine, I don't get an exception. As you can see
> >> I added a test that retrieves the recently committed string and when I
> >> check it (s2) the value is fine. So I am not having any problems with
> >> shared preferences storage during the lifetime of my app. However,
> >> when I relaunch the application in the emulator the shared preferences
> >> storage area is empty and I can't find the values I stored in the last
> >> emulator session. I did some reading and as far as I can see the
> >> stored values should persist across sessions, apparently they are
> >> saved in an XML file belonging to the emulator. Yet I am having
> >> problems.
>
> >> Can anyone tell me why my shared preferences storage values are not
> >> persisting between Android emulator sessions?
>
> >> -- roshcler
>
> --
> Kostya Vasilyev --http://kmansoft.wordpress.com

-- 
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


Re: [android-developers] Re: Android shared preferences assignments not persisting between emulator sessions

2011-04-23 Thread Kostya Vasilyev

Robert,

Do you start the emulator with "Wipe data" option, by any chance?

If you are, that explains it, as wiping the data means well, wiping 
the data.


The preferences are stored in the file system of the emulated Android 
device, just like on a real phone, not directly within the host 
computer's file system.


You can find the files under:

/data/data//shared_prefs

-- Kostya

23.04.2011 10:02, Zsolt Vasvari пишет:

No idea about the MODE_PRIVATE stuff, but I use
PreferenceManager.getDefaultSharedPreferences() and it works fiine.
Why do you need to control the file name?

On Apr 23, 12:15 pm, roschler  wrote:

I am using the following code to save data to my Android application's
shared preferences:

 private SharedPreferences getOurSharedPreferences() {
 return getSharedPreferences(SHARED_PREFS_FILENAME,
MODE_PRIVATE);
 }

 SharedPreferences sharedPrefs = getOurSharedPreferences();
 SharedPreferences.Editor editor = sharedPrefs.edit();
 editor.putString(keyName, theString);
 if (!editor.commit())
 throw new RuntimeException("Unable to save new string.");

 // Get it back as a test.
 String s2 = getStringFromStorage(keyName);

Where SHARED_PREFS_FILENAME is a private final static string and
keyName is the name of whatever key I'm currently using as a field
name. The commit works fine, I don't get an exception. As you can see
I added a test that retrieves the recently committed string and when I
check it (s2) the value is fine. So I am not having any problems with
shared preferences storage during the lifetime of my app. However,
when I relaunch the application in the emulator the shared preferences
storage area is empty and I can't find the values I stored in the last
emulator session. I did some reading and as far as I can see the
stored values should persist across sessions, apparently they are
saved in an XML file belonging to the emulator. Yet I am having
problems.

Can anyone tell me why my shared preferences storage values are not
persisting between Android emulator sessions?

-- roshcler



--
Kostya Vasilyev -- http://kmansoft.wordpress.com

--
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