Настройки приложения Android очищаются автоматически - PullRequest
2 голосов
/ 23 января 2011

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

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

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

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

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

Есть идеи?

1012 * Кевин *

Ответы [ 2 ]

1 голос
/ 23 января 2011

Процитирую вас ...

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

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

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

0 голосов
/ 24 января 2011

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

...