Android - Conserver ou de supprimer les fichiers créés par l'application sur désinstaller
J'ai créé une application qui permet de créer et de stocker les fichiers de carte sd. Est-il un moyen de lier le dossier avec application dans le but de supprimer tous les fichiers lorsque l'utilisateur exécute la désinstallation sur un appareil android?
- L'application
NQ Mobile Security
est l'appel d'une Activité à désinstaller regarder les i.imgur.com/Fos9N.png, i.imgur.com/fIZbK.png, i.imgur.com/cG9Hr.png et la question stackoverflow.com/questions/10219328/...
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen pour votre demande de savoir qu'il est désinstallé (sans modifier le noyau). Tous les fichiers créés dans le
data/data/your.app.package
est automatiquement supprimé lors de la désinstallation d'application.Je pense que rien n'est effacé de la carte sd. Vous pouvez faire un test rapide et le savoir.
Une autre approche pourrait être d'une autre application qui vérifie si cette application est installée ou non. Si pas, il peut faire le travail de nettoyage.
NQ Mobile Security
est l'appel d'une Activité à désinstaller regarder les i.imgur.com/Fos9N.png, i.imgur.com/fIZbK.png, i.imgur.com/cG9Hr.png et la question stackoverflow.com/questions/10219328/...Semble y avoir eu une certaine évolution depuis 2009).
De la la documentation:
Même lors de l'utilisation de la
getExternalCacheDir()
, j'ai vu que le répertoire de cache, qui est le package de votre application nom, n'est pas supprimé automatiquement comme il est dit sur l'Android à la Documentation, au moins sur le Lenovo A1. Il pourrait être un peu naïf mais vous pouvez nettoyer les données précédentes au cours de ré-installer. De là, vous pouvez savoir si votre application a été désinstallé ou est installé pour la première fois - vous de stocker une valeur, peut-être un booléen, l'utilisation partagée des préférences. Il peut être quelque chose comme:De cette façon, chaque fois que l'application s'exécute, il vérifie si c'est la première fois qu'il est en cours d'exécution. Lorsque l'application est supprimée, ainsi que l'partagé préférences de l'application. Alors, la prochaine fois qu'il est installé, le si(...) sera vrai et vous pouvez faire un peu de ménage là-haut.
Je sais que ce n'est pas répondre directement à la question et c'est pas gentil de congé non utilisés de données sur des périphériques des utilisateurs, mais je pense que ça pourrait être une alternative à essayer de nettoyer quand une application est en cours de suppression, ce qui est raisonnable, mais semble impossible.
Je suis en ajoutant ce parce que les questions /réponses sont obsolètes en 2017.
S'il est vrai qu'il n'y a pas de rappel sur l'application de désinstallation, certains mécanismes ont été prévus pour la préservation des données d'application au-delà de désinstaller.
Depuis Android 6.0 API (23), la Sauvegarde Automatique pour
Apps
fonctionnalité a été introduite, ce qui a permis aux développeurs soit autoriser ou empêcher l'application automatique de sauvegarde. Comme d'API 23 de sauvegarde est activée par défaut.
Deux nouveaux
application
balises ont été introduites pour le fichier manifeste:android:allowBackup
etandroid:fullBackupContent
.D'opter pour la sauvegarde automatique, ajouter
android:allowBackup="false"
pour le fichier manifeste sous laapplication
tag. La valeur "true" va automatiquement enregistrer les préférences partagées et des bases de données vers le cloud, ainsi que autres fichiers.Deuxièmement, vous pouvez être très précis sur les fichiers que vous souhaitez inclure ou exclure pour la suppression ou la conservation sur désinstaller avec le
android:fullBackupContent
tag. Cet attribut pointe vers un fichier XML qui contient la sauvegarde de règles. Créer un fichier de configuration XML dans leres/xml/
répertoire avec la syntaxe suivante:Ici, vous pouvez ajouter des types de fichiers spécifiques à inclure ou à exclure et de leurs chemins. Ajouter le
android:fullBackupContent = "@xml/my_backup_rules"
tag du fichier manifeste sous laapplication
tag.Les fichiers spécifiés serait sauvegardé sur Google Drive en vertu de la primaire compte de messagerie de l'appareil. Les données seront restaurées sur le ré-installer suivantes, pourvu que le paramètre est activé par l'utilisateur:
Settings -> Backup & Reset -> Automatic Restore
.Il convient également de noter que les données de sauvegarde ne peut pas être lu par l'utilisateur ou d'autres applications sur l'appareil.
La même chose peut également être consulté à partir de l'application Google Drive à partir d'ici:
Google Drive -> Settings -> Auto backup for apps -> Backup and reset
Il est intéressant de noter que, si la même primaire compte Google est utilisé pour de multiples appareils, périphériques multiples sauvegardes sont créées. Les sauvegardes pour les appareils individuels peuvent être accessibles à partir d'ici:
Google Drive -> Settings -> Backups
il semble que depuis lors, il y a un bon soltuion, Contexte.getExternalFilesDir():
si vous voulez stocker de grandes données, puis de le stocker dans de stockage externe avec chemin d'accès au fichier un nom comme
où le paquet est le nom de votre package d'application nom eg com.pense.abc