Intereting Posts
Обход ошибки в фильтрации, которая не обновляет ListView Android Как скопировать изображения / файлы в буфер обмена в Android? Любые альтернативные методы / шаги для получения этого Есть ли способ вставить ImageSpan в TextView без нарушения текста? Android динамически добавляет элемент из макета xml Изменение и перекомпиляция Android SDK Невозможно создать actionbarsherlock: BuildConfig не может быть разрешен переменной Одновременный доступ к различным членам одного и того же объекта в Java Когда необходимо использовать singleTop launchMode в виджетах или приложениях Android? Ошибка: «Ошибка анализа XML: XML или текстовое объявление не в начале объекта» Изменяет ли цвет фона в андроиде внешний вид виджета? Откройте приложение Android из URL-адреса, не используя рабочий фильтр TextView не прокручивается Smoothly Анимация загрузки Android Некоторые параметры функции с именем arg0, arg1 и т. Д. После компиляции JAR-библиотеки Использование процессора Android Sensor

Общие настройки теряются после отключения устройства или убийства приложения

Есть много вопросов, связанных с общими предпочтениями и альтернативами. Моя проблема: когда я закрываю устройство или убиваю приложение, общие настройки теряются. Обратите внимание, что мой код работает на Acer A500. Но на моем Motorola Xoom MZ604 он не работает!

Прежде всего, я пытаюсь восстановить свой HashSet в onCreate. Этот метод называется уверенным и реализуется в одноэлементном режиме.

public boolean restoreCollection(Context context){ SharedPreferences settings = context.getSharedPreferences(context.getString(R.string.restore_values), 0); if(settings.getStringSet(context.getString(R.string.collection), null) != null){ collection = settings.getStringSet(context.getString(R.string.collection), null); return true; } collection = new HashSet<String>(); return false; } 

Вызывая onDestroy, я сохраняю HashSet. Несмотря на то, что это не указано, что этот метод вызывается наверняка, предпочтения теряются в любом случае, я пытаюсь сохранить его в onPause с тем же результатом.

 public void saveCollection(Context context){ SharedPreferences settings = context.getSharedPreferences(context.getString(R.string.restore_values), 0); SharedPreferences.Editor e = settings.edit(); e.putStringSet(context.getString(R.string.collection), collection); e.commit(); } 

Были ли проблемы с Shared Preferences и устройством XOOM, или я единственный? Возможно, что-то подозрительно с моим кодом, но данные не теряются на моем Acer Tablet.

Я также попробовал PreferenceManager.getDefaultSharedPreferences (контекст), чтобы получить объект SharedPreferences

Спасибо за вашу помощь, Крис

Я выяснил решение, которое работает как на моем Acer, так и на моем устройстве XOOM: перед выполнением новых данных вы должны вызвать clear () в редакторе:

 public void saveCollection(Context context){ SharedPreferences settings = context.getSharedPreferences(context.getString(R.string.restore_values), 0); SharedPreferences.Editor e = settings.edit(); e.clear(); e.putStringSet(context.getString(R.string.collection), collection); e.commit(); } 

У меня была такая же проблема при использовании набора строк с SharedPreferences. Я обнаружил, почему это происходит и как его решить.

Очень важно прочитать документацию API для SharedPreferences.getStringSet (String key, Set defValues)

По существу НЕ изменяйте или не прикасайтесь к возвращенному набору! Если вы это сделаете, вы получите нечетные результаты с помощью SharedPreferences. 🙂

Наслаждайтесь!

Ваша проблема, похоже, такая же, как обсуждалось здесь для устройства Samsung Galaxy S работающего на стандарте Froyo 2.2.1 . Некоторые впечатления от их обсуждения:

Журнал показывает:

01-19 12: 08: 56.856 W / ApplicationContext (4563): попытаться прочитать файл настроек /dbdata/databases/com.mobilemerit.ultimatefaves/ shared_prefs / com.mobilemerit.ultimatefaves_preferences.xml без разрешения

По-видимому, одним из возможных способов решения проблемы является:

У моего пользователя, похоже, был такой же симптом.

Он отправил мне по электронной почте, что ему пришлось сделать заводскую перезагрузку на свой телефон по другим причинам, он снова установил приложение с рынка (что-то, что не помогло до сброса), и теперь все работает так, как ожидалось.

Другое обходное решение:

У меня те же проблемы с моим 2.2.1 Galaxy S (с корнем), я решаю его, удалив папку приложения (com.xxx) в \ dbdata \ databases. У кого-то такая же проблема на другом телефоне?

И этот парень действительно нашел причину этого:

Я установил мое приложение (WidgetLocker) и получил приложение_81, после чего я удалил его с помощью «adb uninstall com.teslacoilsw.widgetlocker», а затем переустановил и нашел, что мои настройки сохранялись во время удаления, но разрешение не было отклонено. Я удалил снова таким же образом, на этот раз я пошел на рынок и установил Androidify. Это когда все стало интересно: (…)

Так что Androidify получил мой uid, и мои предпочтения теперь принадлежат им . (…)

И мы ввернуты …

Для этой проблемы есть сообщение об ошибке: http://code.google.com/p/android/issues/detail?id=14359

Google отклонил эту ошибку, поскольку на самом деле это ошибка, вызванная изменениями, внесенными поставщиком для устройства.

Авторы приложения «Beautiful Widgets» дают своим пользователям следующий совет:

** SAMSUNG GALAXY S & ANDROID 2.2 **
В обновлении Samsung есть ошибка, которая препятствует сохранению файла настроек. Вам необходимо восстановить заводские настройки телефона (…)

Поэтому это должно помочь.

Ответьте на этот ответ, если это произойдет на вашем устройстве Xoom.