Я использую Eclipse 3.5.2 IDE для разработки под Android.Я использую следующий код для записи в файл sharedpreferences по умолчанию и запускаю его в adb emulator :
private SharedPreferences getOurSharedPreferences(Activity act) {
// return getSharedPreferences(SHARED_PREFS_FILENAME, MODE_PRIVATE);
return act.getPreferences(MODE_PRIVATE);
}
private void putStringToStorage(Activity act, String keyName, String s) {
// Store it.
SharedPreferences sharedPrefs = getOurSharedPreferences(act);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.remove(keyName);
// editor.putString(keyName, s);
editor.putString(keyName, "test123");
boolean bCommitted = editor.commit();
if (!bCommitted)
throw new RuntimeException("(AndroidApplication) Unable to save new string.");
// Get it back as a test.
// String s2 = getStringFromStorage(keyName);
}
Описанный выше метод относится к Application мой подкласс, поэтому метод содержит объектный параметр Activity , поэтому я могу иметь доступ к Activity.getPreferences () .Обратите внимание, что ранее я использовал глобальный вызов getSharedPreferences () , но я изменился на getPreferences () из-за отчаяния из-за проблем, с которыми я столкнулся.Причина, по которой я пишу " test123 " вместо переменной " s ", заключается в том, чтобы убедиться, что проблема, с которой я столкнулся, не связана с каким-либо значением " s", что, возможно, файлу общих настроек может не понравиться.
Всякий раз, когда я запускаю код editor.commit () всегда возвращается FALSE .Немного истории.Некоторое время назад мне удалось записать файл общих настроек, используя файл общих настроек с именем app_global, созданный с использованием глобального getSharedPreferences () вызова вместо Activity.getPreferences () .Мне удалось записать и прочитать значение из этого файла общих настроек, однако всякий раз, когда я перезапускал свое приложение, значения, которые я писал во время последнего сеанса, исчезали.В рамках моих усилий по отладке я зашел в adb shell и удалил «app_global» из папки shared_prefs моего приложения.С тех пор эмулятор появляется, не желая создавать новый файл общих настроек, по умолчанию или нет.
Обратите внимание, что окно LogCat всегда пусто, а окно Console не показывает никаких ошибок, в том числе при запуске моего приложения в эмуляторе.Я также попытался запустить приложение в режиме отладки, отметив " Wipe User Data " в конфигурации отладки.Это тоже не помогло.Независимо от того, что я делаю editor.commit () завершается ошибкой и папка shared_prefs для моего приложения при выполнении " ls -a " из оболочки adb всегда пуст .
Мои вопросы:
Я где-то читал про " перестройку образа пользователя " дляэмулятор.Это техника, которую я мог бы использовать, чтобы попытаться исправить этот кластер проблем, которые я имею с общим хранилищем предпочтений?Если да, как мне это сделать?
Есть ли что-нибудь еще, что я мог бы попытаться решить эту проблему?
- roschler