2011-01-23 2 views
1

Внезапно, каждый раз, когда я запускаю свое приложение, мои настройки пользователя очищаются. Вместо того чтобы использовать предпочтения непосредственно в деятельности, у меня есть вспомогательный класс в моем объекте Application, который обращается предпочтения, как это:Настройки Android-приложения автоматически очищаются

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

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

Я действительно понимаю, что есть способ очистить пользовательские настройки, но у меня этого нет в моем коде где угодно. Это, похоже, начиналось, когда я начал создавать Proguard для релизов, но теперь это происходит и с отладочными сборками. Повторная загрузка нового приложения из Eclipse или даже просто повторное запуск приложения приводит к тому, что настройки будут удалены.

Я прошел последние изменения кода и не нашел ничего связанного. Поскольку я приближаюсь к публикации приложения на рынке, я продолжаю переключаться между отладкой &, но я бы не подумал, что это вызовет такую ​​проблему.

Любые идеи?

Кевин

ответ

0

Решено. С Logcat я, наконец, заметил исключение при чтении предпочтений. Я писал новое предпочтение с нулевым ключом, и это вызывало исключение загрузки предпочтений. Тупая ошибка с моей стороны.

+0

Вы бы не подумали, что это оставит вас, ваши предпочтения будут стерты. Если кому-то интересно, я рассказываю об этом более подробно в своем блоге. http://toastdroid.com/2014/07/04/null-shared-preference-key-bad-news-droids/ – MinceMan

1

Цитирую вас ...

Это было, кажется, начинает происходить, когда я начал строить с Proguard для выпуска строит

Поскольку релиз сборки и отладки сборки используют разные ключи для подписи, они не могут сосуществовать на одном устройстве. Вы уверены, что не удаляете сборку отладки при установке сборки релиза? Uninstalls будет использовать любые предпочтения, привязанные к приложению.

Поскольку вы говорите, что у вас нет кода, который бы удалял предпочтения, единственный способ, которым я знаю, чтобы уйти, - это удалить XML-файл физических предпочтений или удалить его. Таким образом, вы можете проверить, чтобы убедиться, что у вас нет кода, который очищает файлы в локальной области хранения вашего приложения.

+0

Я не верю, что есть какой-либо код для удаления XML-файла предпочтений. Перед установкой отладки я удалил приложение режима выпуска. Я ожидаю, что это уберет предпочтения. Тем не менее, 2-й, 3-й или n-й раз, когда я запускаю приложение, они все еще ясны, когда я запускаю приложение. – ktambascio

Смежные вопросы