Как удалить общие предпочтения при удалении приложения в 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 когда мое приложение удалит.

Solutions Collecting From Web of "Как удалить общие предпочтения при удалении приложения в android"

Проблема не в предпочтениях. Это радикальный менеджер резервного копирования ! .. поскольку android-23 по умолчанию резервное копирование в качестве задачи хранит данные приложения, включая настройки для облачных вычислений. Позже, когда вы удалите, затем установите новую версию, вы, вероятно, собираетесь использовать восстановленные настройки. Чтобы этого избежать, просто добавьте это в свой манифест (или, по крайней мере, для отладки манифеста):

 <application ... android:allowBackup="false"> ... </application> 

Читайте это: http://developer.android.com/guide/topics/data/backup.html

Вы также увидите, что если вы запустите Lint под Android > Lint > Security :

Предупреждающее предупреждение о резервном копировании

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

Кроме того, вы можете очистить кеш перед удалением приложения.

Надеюсь, это поможет.

SharedPreferences всегда удаляется вместе с удалением приложения.

Когда вы удаляете какое-либо приложение, все изменения, внесенные в вашу внутреннюю память, будут отменены, это означает, что ваши файлы SharedPreference, Другие файлы данных, файл базы данных, приложение автоматически удаляются ОС Android.

EDITED: 29/04/15: для> = 21 API см. Ответ @Maher Abuthraa

Странно, но я нашел решение следующим образом:

  1. Добавьте xmlns:tools="http://schemas.android.com/tools" в тег манифеста файла Manifest.xml
  2. Добавить android:allowBackup="false" в теге приложения файла Manifest.xml
  3. Добавить 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> Размер  <?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> 

Готово.

Параметр allowBackup = "false" выбирает приложение из резервной копии и восстановления.