Une application Android se souvient de ses données après le désinstaller et le réinstaller
Lors du développement d'une application Android ciblage de toutes les versions 4.1 ci-dessus, j'ai observé que la désinstallation de mon application et de l'installer à nouveau ne pas effacer ses données.
L'app est conçu pour stocker les données qu'il demande dans son premier écran.
Après l'installation et la désinstallation de nouveau en OS version 4.4.4, l'application invite l'utilisateur à saisir les données, ce qui est normal. Cependant dans la version 6.0 de la même installation/désinstallation de la séquence d'apporter sauvegarde les données à l'origine de l'entrée.
J'ai essayé d'en assurer en visitant /data/data/my package folder
de voir la base de données est allé après désinstallation et, en effet, que le dossier est supprimé lors de la désinstallation.
J'ai essayé de supprimer l'application en visitant la page des paramètres, par le biais de Titanium Backup et les résultats sont les mêmes. L'appareil est enracinée Nexus 5 de course de v6.0.
Quelle pourrait être la raison de cet étrange comportement?
Vous devez vous connecter pour publier un commentaire.
C'est parce que Android 6 a de la sauvegarde automatique. Vous devez régler
android:allowBackup
etandroid:fullBackupContent
dans votre manifeste<application>
tag si vous ne souhaitez pas que vos données sauvegardées ou si vous souhaitez inclure ou exclure certaines ressources. Ce n'est pas un bug.Plus sur la Sauvegarde automatique sur Android ici.
android:allowBackup
etandroid:fullBackupContent
ce n'est pas la suppression de mon application de colis et tous les fichiers sont encore leurs après la désinstallation. Je suis en train de tester sur Moto G4 Plus - Android 7.0FirebaseRemoteConfig
l'origine de ce problème. En raison du mécanisme de mise en cache, il fournit, ils ont probablementfullBackupContent
déclaré dans leur propre manifeste.greywolf82 réponse est bonne, mais je veux ajouter quelques informations à ce.
Lors du développement de mon application Android (à l'aide de Xamarin), j'ai remarqué qu'à chaque fois que je re-lancer l'application à partir de Visual Studio, mes données serait revenir aux données à partir d'un il ya quelques mois. Il n'a pas d'importance si j'ai tout simplement arrêté et ré-exécuté à partir de VS, ou si j'ai complètement désinstallé l'application et de le réinstallé.
Il est également intéressant de noter que nous n'avons jamais dit explicitement à l'application de stocker une sauvegarde.
La sauvegarde semble également écraser les données les plus récentes au moment du lancement de Visual Studio, et nous avons des rapports d'utilisateurs à l'aide de la version de publication de notre application, et également obtenir les données les plus récentes remplacés par les sauvegardes.
Car je ne sais pas exactement quand les sauvegardes et les restaurations se produire cette fonctionnalité semble provoquer des problèmes.
Nous avons modifié notre AndroidManifest comme indiqué dans le code xml suivant:
Une fois que nous avons explicitement définir la valeur false, tout semble fonctionner. Je m'attends que c'est une fonctionnalité d'opt-in, mais...me semble qu'il pourrait être activée par défaut pour les applications qui ne spécifiez pas la valeur de toute façon.
Vous devriez vérifier votre périphérique de Sauvegarde et de Réinitialiser les paramètres et désactiver la restauration Automatique (lors de la réinstallation d'une application, de sauvegarder les paramètres et les données seront restaurées.)
De désactiver la sauvegarde automatique est différente de l'auto-restauration. Si vous pensez qu'il sera utile d'activer la sauvegarde automatique de votre demande de le faire. Mais si vous pensez que cela va rendre les utilisateurs finaux qui ne sont pas au courant que l'auto-restauration de la fonctionnalité de leur appareil est allumé, n'hésitez pas à le désactiver.
Dans mon cas, j'ai éteint le allowBackup fonctionnalité, mais puisque j'avais déjà une sauvegarde de la version précédente sur le Cloud, il a toujours gardé sur la restauration.
Voir l'image comme référence pour un appareil de Samsung sur Android 6.0. D'autres appareils et versions peuvent avoir un autre écran. Voir l'image ci-dessous.
De Restauration automatique de Paramètre sous la Sauvegarde et Réinitialisation
J'ai récemment eu besoin de prendre avantage de ces fonctions, j'ai été en mesure de découvrir la documentation et sur des tests approfondis c'est ce que j'ai pu en déduire:
Android:allowbackup - sauvegarde locale des données d'application sur le périphérique, il est situé sur.
Android:fullBackupContent - est utilisé en conjonction avec Google restauration de sauvegarde de l'api et PEUT être contrôlé via un fichier xml pour spécifier ce qu'est exactement la sauvegarde, ainsi que d'un BackupManager classe vous pouvez mettre en œuvre pour plus de contrôle sur le processus.
Cependant, les états de documentation, et j'ai confirmé par les essais, qu'une restauration ne se produire lorsque l'appareil est rétabli et la restauration de données d'application de processus est déclenché. OU elle restaure également lorsque l'application est sideloaded par le biais de la bad, qui est ce que nous faisons lorsque nous exécuter l'application pour les essais ou de débogage sur nos appareils par l'intermédiaire d'Android Studio. Notez que si vous définissez android:allowbackup mais ne pas configurer android:fullBackupContent avec un api Google code, les applications uniquement des données est stocké localement, tandis que si vous l'avez configuré correctement, alors si votre application a été sauvegardé et vous obtenez un nouvel appareil, les applications de données ont été stockées sur le cloud de sorte qu'il peut être restauré sur un nouvel appareil.
Il suffit de changer android:allowBackup="true" android:allowBackup="false" dans manifiest.xml. Il sera travaillé.
Juste en ajoutant à cela, nous avons constaté que, dans Android 9 (sur un CASQUE Nokia appareil) que les biens ont été tenus, même après la suppression de l'application par le biais de l'interface et par la bad.
La réponse de l'ajout:
android:allowBackup="false"
android:fullBackupOnly="false"
Évidemment, ce n'est pas une réponse mais une observation pour les gens qui ont été dans la même situation que nous.
L'ajout d'android:allowBackup="false" en vertu de l'application de la balise dans le fichier de Manifeste de résoudre mon problème.
Si vous ciblez android 10, alors vous avez à mettre
android:hasFragileUserData="true"
dans la balise application deAndroidManifest.xml
Voir https://commonsware.com/blog/2019/06/06/random-musings-q-beta-4.html