Как удалить общие предпочтения при удалении приложения в android
У меня есть приложение для Android, чтобы сохранить данные для входа, такие как имя пользователя и пароль с помощью SharedPreferences
, которые отлично работают, но мне нужно удалить все мои использованные SharedPreferences
, пока мое приложение удаляется. Как это сделать?
SavePreferences("one ", "");
SavePreferences("two", "");
LoadPreferences();
private void SavePreferences(String key, String value){
sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
private void LoadPreferences(){
sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
String strSavedMem1 = sharedPreferences.getString("MEM1", "");
String strSavedMem2 = sharedPreferences.getString("MEM2", "");
}
Я хочу удалить этот SharedPreferences
, когда мое приложение удалит.
Ответы
Ответ 1
Проблема не в настройках. Это решительно менеджер резервного копирования!.. поскольку android-23 по умолчанию резервное копирование в качестве задачи хранит данные приложения, включая настройки для облачных вычислений. Позже, когда вы удалите, установите более новую версию, вы, вероятно, собираетесь использовать восстановленные настройки. Чтобы этого избежать, просто добавьте это в свой манифест (или, по крайней мере, для отладки манифеста):
<application ...
android:allowBackup="false">
...
</application>
Прочтите это: http://developer.android.com/guide/topics/data/backup.html
Вы также увидите, что если вы запустите Lint под Android > Lint > Security
:
![lint warning on backup]()
Здесь хорошо сказать, что процесс резервного копирования похож на черный ящик.. вы не знаете, когда он начинается, и период между проверками... так лучше для разработки, чтобы отключить его.
В качестве альтернативы вы можете очистить кеш до удаления приложения.
Я надеюсь, что это может помочь.
Ответ 2
SharedPreferences
всегда удаляется вместе с удалением приложения.
При удалении любого приложения все изменения, внесенные в вашу внутреннюю память, будут отменены, это означает, что ваши файлы SharedPreference, Другие файлы данных, файл базы данных, приложение автоматически удаляются ОС Android.
EDITED: 29/04/15: для >= API API @Maher Abuthraa answer
Ответ 3
Странно, но я нашел решение следующим образом:
- Добавить
xmlns:tools="http://schemas.android.com/tools"
в тег манифеста файла Manifest.xml
- Добавить
android:allowBackup="false"
в тег приложения файла Manifest.xml
- Добавить
tools:replace="android:allowBackup"
в тег приложения файла Manifest.xml
Файл Manifest.xml должен выглядеть следующим образом.
<?xml version="1.0" encoding="utf-8"?><!--suppress ALL -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.package">
// Other code
<application
android:name="com.package.Application"
android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="@drawable/appicon"
android:label="@string/application_name"
android:largeHeap="true"
android:theme="@style/AppTheme"
tools:replace="android:allowBackup">
<activity
android:name="com.package.SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/application_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
// Other code
</application>
</manifest>
Сделано.
Ответ 4
Настройка allowBackup = "false" выбирает приложение из резервной копии и восстановления.