J'ai une application Android pour enregistrer les informations de connexion, telles que le nom d'utilisateur et le mot de passe via SharedPreferences
. Cela fonctionne bien, mais je dois supprimer tous mes SharedPreferences
utilisés. pendant la désinstallation de mon application. Comment le faire?
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", "");
}
Je souhaite supprimer ce SharedPreferences
lors de la désinstallation de mon application.
Le problème n'est pas avec les préférences. C'est drastiquement le gestionnaire de sauvegarde ! .. depuis la sauvegarde par défaut d'Android-23 en tant que tâche stocke les données de l'application, y compris les préférences pour le cloud. Plus tard, lorsque vous désinstallez puis installez une version plus récente, vous allez probablement utiliser les préférences restaurées. Pour éviter cela, ajoutez simplement ceci à votre manifeste (ou au moins pour le déboguer):
<application ...
Android:allowBackup="false">
...
</application>
Lisez ceci: http://developer.Android.com/guide/topics/data/backup.html
Vous verrez également que si vous exécutez Lint sous Android > Lint > Security
:
Il est bon de mentionner ici que le processus de sauvegarde s'apparente à une boîte noire. Vous ne savez pas quand il démarre, et le délai entre les vérifications ... Il est donc préférable de le désactiver.
==== Mise à jour ====
Vous pouvez obtenir des problèmes de fusion du manifeste après avoir défini allowbackup
sur false
. Pour résoudre ce problème, ajoutez:
tools:replace="Android:allowBackup"
dans l'élément d'application. Crédit à @ shahzain-ALi
Sinon, vous pouvez effacer le cache avant de désinstaller l'application.
J'espère que cela peut aider.
SharedPreferences
est toujours supprimé avec la désinstallation de l'application.
Lorsque vous désinstallez une application, toutes les modifications effectuées par votre application dans votre mémoire interne sont révoquées, ce qui signifie que vos fichiers SharedPreference, Autres fichiers de données, Fichier de base de données, Application sont supprimés automatiquement par le Android OS.
EDITED: 29/04/15: for> = 21 API se référer (réponse de @ Maher Abuthraa
C'est étrange mais j'ai trouvé la solution de la manière suivante:
xmlns:tools="http://schemas.Android.com/tools"
dans balise manifeste de Manifest.xml fichierAndroid:allowBackup="false"
dans balise application sur fichier Manifest.xmltools:replace="Android:allowBackup"
dans balise application sur fichier Manifest.xmlLe fichier Manifest.xml devrait ressembler à ceci.
<?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>
C'est fait.
Le problème n'est pas avec les préférences.
utilisez ce code pour le réparer ..........
<application
Android:allowBackup="true"
Android:fullBackupContent="false"></application>
Réglage allowBackup="false"
supprime une application de la sauvegarde et de la restauration.
Android:allowBackup="false"