Назначения общих настроек Android не сохраняются между сеансами эмулятора - PullRequest
4 голосов
/ 23 апреля 2011

Я использую следующий код для сохранения данных в общих настройках приложения Android:

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

Где SHARED_PREFS_FILENAME - это личная конечная статическая строка, а keyName - это имя любого ключа, который я сейчас использую в качествеимя поля.Коммит работает нормально, я не получаю исключения.Как видите, я добавил тест, который извлекает недавно зафиксированную строку, и когда я проверяю ее (s2), значение в порядке.Поэтому у меня нет проблем с общим хранилищем настроек в течение всего времени жизни моего приложения.Однако, когда я перезапускаю приложение в эмуляторе, область хранения общих настроек становится пустой, и я не могу найти значения, которые я хранил в последнем сеансе эмулятора.Я немного читал и, насколько я вижу, сохраненные значения должны сохраняться между сеансами, очевидно, они сохраняются в файле XML, принадлежащем эмулятору.Тем не менее у меня возникают проблемы.

Может кто-нибудь сказать мне, почему мои общие хранилища настроек не сохраняются между сеансами эмулятора Android?

- roshcler

Ответы [ 2 ]

0 голосов
/ 10 октября 2014

У меня была похожая проблема.Попробуйте удалить приложение и переустановить.Все может испортиться в ваших общих файлах настроек по мере разработки.

После того, как я переустановил мои проблемы исчезли, и я смог увидеть свои постоянные значения на протяжении жизненного цикла приложения.

0 голосов
/ 23 апреля 2011

На вкладке Target диалогового окна конфигурации отладки у вас установлен флажок «Wipe User Data»?

...