Bei der Entwicklung einer Android-App für alle Versionen über 4.1 habe ich festgestellt, dass durch Deinstallieren und erneutes Installieren der App die Daten nicht gelöscht werden.
Die App ist so konzipiert, dass die angeforderten Details auf dem ersten Bildschirm gespeichert werden. Nach der Deinstallation und erneuten Installation in OS Version 4.4.4 fordert die App den Benutzer auf, die Daten einzugeben, was normal ist. In Version 6.0 bringt dieselbe Installations- / Deinstallationssequenz jedoch die ursprünglich eingegebenen Daten zurück.
Ich habe versucht, durch einen Besuch sicherzustellen /data/data/my package folder
, dass die Datenbank nach der Deinstallation nicht mehr vorhanden ist und dieser Ordner während der Deinstallation gelöscht wird.
Ich habe versucht, die App durch Aufrufen der Einstellungsseite über Titanium Backup zu löschen. Die Ergebnisse sind dieselben. Auf dem Gerät ist Nexus 5 mit Version 6.0 gerootet.
Was könnte der Grund für dieses seltsame Verhalten sein?
quelle
Die Antwort von greywolf82 ist richtig, aber ich möchte einige Informationen hinzufügen.
Bei der Entwicklung meiner Android-App (mit Xamarin) habe ich festgestellt, dass meine Daten bei jedem Neustart der App aus Visual Studio wieder auf Daten von vor einigen Monaten zurückgesetzt wurden. Es war egal, ob ich es einfach gestoppt und von VS erneut ausgeführt habe oder ob ich die App vollständig deinstalliert und neu installiert habe.
Es ist auch erwähnenswert, dass wir der App nie ausdrücklich gesagt haben, dass sie ein Backup speichern soll.
Die Sicherung schien auch neuere Daten beim Start von Visual Studio zu überschreiben, und wir haben Berichte von Benutzern, die den Release-Build unserer App verwenden und auch neuere Daten durch die Sicherungen überschrieben bekommen.
Da ich nicht genau weiß, wann Sicherungen und Wiederherstellungen stattfinden, scheint diese Funktion nur Probleme zu verursachen.
Wir haben unser AndroidManifest wie in der folgenden XML gezeigt geändert:
Sobald wir den Wert explizit auf false gesetzt haben, scheint alles zu funktionieren. Ich würde erwarten, dass dies eine Anmeldefunktion ist, aber ... scheint standardmäßig für Apps aktiviert zu sein, die den Wert in keiner Weise angeben.
quelle
Sie sollten die Sicherungs- und Rücksetzeinstellungen Ihres Geräts überprüfen und die automatische Wiederherstellung deaktivieren (bei der Neuinstallation einer Anwendung werden gesicherte Einstellungen und Daten wiederhergestellt.)
Das Deaktivieren der automatischen Sicherung unterscheidet sich von der automatischen Wiederherstellung. Wenn Sie der Meinung sind, dass es hilfreich ist, die automatische Sicherung für Ihre Anwendung zu aktivieren, tun Sie dies. Wenn Sie jedoch der Meinung sind, dass Endbenutzer, die nicht wissen, dass die automatische Wiederherstellungsfunktion ihres Geräts aktiviert ist, diese Funktion deaktivieren können, können Sie sie deaktivieren.
In meinem Fall habe ich die Funktion allowBackup deaktiviert, aber da ich bereits ein Backup der vorherigen Version in der Cloud hatte, wurde sie immer noch wiederhergestellt.
Siehe Bild als Referenz für ein Samsung-Gerät unter Android 6.0. Andere Geräte und Versionen haben möglicherweise einen anderen Bildschirm. Siehe Bild unten.
Automatische Wiederherstellungseinstellung unter Sichern und Zurücksetzen
quelle
Ich musste kürzlich diese Funktionen nutzen, konnte die Dokumentation aufdecken und nach umfangreichen Tests konnte ich Folgendes ableiten:
Android: allowbackup - sichert lokale App-Daten auf dem Gerät, auf dem es sich befindet.
Android: fullBackupContent - wird in Verbindung mit der Backup-Wiederherstellungs-API von Google verwendet und kann über eine XML-Datei gesteuert werden, um anzugeben, was genau gesichert werden soll, sowie über eine BackupManager-Klasse, die Sie zur weiteren Kontrolle des Prozesses implementieren können.
In der Dokumentation heißt es jedoch, und ich habe beim Testen bestätigt, dass eine Wiederherstellung nur dann erfolgt, wenn das Gerät wiederhergestellt und der Datenprozess der Wiederherstellungs-App ausgelöst wird. ODER es wird auch wiederhergestellt, wenn die App über adb von der Seite geladen wird. Dies tun wir, wenn wir die App zum Testen oder Debuggen auf unseren Geräten über Android Studio ausführen. Beachten Sie, dass, wenn Sie android: allowbackup festlegen, android: fullBackupContent jedoch nicht mit einem Google-API-Code konfigurieren, die Apps-Daten nur lokal gespeichert werden. Wenn Sie sie ordnungsgemäß konfiguriert haben, werden Ihre Apps gesichert, wenn Ihre App gesichert wurde und Sie ein neues Gerät erhalten Daten wurden in der Cloud gespeichert, damit sie auf einem neuen Gerät wiederhergestellt werden können.
quelle
Das Hinzufügen von android: allowBackup = "false" unter dem Anwendungs-Tag in der Manifest-Datei hat mein Problem behoben.
Hier ist die Android-Dokumentation zum Sichern von Benutzerdaten mit Auto Backup
quelle
Ändern Sie einfach android: allowBackup = "true" in android: allowBackup = "false" in manifestiest.xml. Es wird gearbeitet.
quelle
Wir haben nur hinzugefügt, dass in Android 9 (auf einem HMD-Nokia-Gerät) die Assets auch nach dem Löschen der App über die Benutzeroberfläche und über adb gespeichert waren.
Die Antwort des Hinzufügens:
android:allowBackup="false" android:fullBackupOnly="false"
Dies ist natürlich keine neue Antwort - sondern eine Beobachtung für Menschen, die sich in derselben Position wie wir befanden.
quelle
Wenn Sie auf Android 10 abzielen, müssen Sie das
android:hasFragileUserData="true"
Anwendungstag von eingebenAndroidManifest.xml
Siehe https://commonsware.com/blog/2019/06/06/random-musings-q-beta-4.html
quelle