Android: App-verknüpfte Dateien von externem Speicher auf Deinstallieren löschen?

8

Es wäre praktisch, wenn eine Anwendung, die ich gerade schreibe, einige Dateien dauerhaft im externen Speicher speichert (so bleiben sie bestehen, nachdem die Anwendung beendet wurde [zerstört]), aber bei einer Deinstallation möchte ich das Anständige tun und lassen Sie diese Dateien entfernen, um den Speicher freizugeben.

Gibt es eine Möglichkeit, diese Dateien bei einer Deinstallation entfernen zu lassen?

Wenn nicht (und ich bin skeptisch), dann muss ich diese Dateien jedes Mal erstellen. Ich versuche, Start-up-Zeit zu sparen und auch benötigten Speicherplatz zu besetzen, indem sie permanent vorhanden sind.

Hinweis: Ich muss externen Speicher verwenden, daher wäre sowohl der interne Speicher als auch eine Datenbank ungeeignet.

    
bdls 01.01.2010, 22:47
quelle

4 Antworten

7

Nein, das glaube ich nicht. Nur Dateien, die Sie in den internen Speicher schreiben, werden entfernt, wenn Ihre Anwendung deinstalliert wird (oder wenn der Benutzer in der App "Anwendungseinstellungen" auf die Schaltfläche "Daten löschen" klickt).

Ihre App kann auch keine eigene PACKAGE_REMOVED -Rundsendungsabsicht erhalten, sodass Sie im Wesentlichen keine Benachrichtigung erhalten, dass Sie deinstalliert werden.

    
Christopher Orr 01.01.2010, 23:12
quelle
10

eigentlich ist es möglich.

Android wird automatisch Dateien der App im externen Speicher entfernen, aber die Dateien müssen sich in einem bestimmten Pfad der App befinden:

"..... / Android / Daten / APP_PACKAGE_NAME /"

Dabei steht APP_PACKAGE_NAME für den Paketnamen der Anwendung. Ein anderer Pfad, der automatisch geleert wird, ist:

"..... / Android / obb / APP_PACKAGE_NAME /" Dabei steht APP_PACKAGE_NAME für den Paketnamen der Anwendung.

Die Daten sind für alles, was Sie wünschen. Der obb-Ordner ist für große Dateien gedacht, die mit dem Play-Store und der apk-Erweiterungsbibliothek . Sie sollten dort keine Dateien erstellen.

    
android developer 05.09.2012 13:23
quelle
3

Ja, das ist möglich. Schreiben Sie Ihre Dateien einfach in das Verzeichnis der externen Dateien:

%Vor%

Dies erstellt einen Ordner unter /Android/data/your.package/. Beachten Sie, dass dies nicht Extern wie in SD-Karte ist, sondern öffentlich zugänglich ist. Wenn ein Nutzer Ihre App deinstalliert, wird auch dieses Verzeichnis mitsamt seinem gesamten Inhalt entfernt.

    
Phil 07.03.2014 21:11
quelle
1

Zitat aus dem Blog-Beitrag von CommonsWare

  • Interner Speicher: Ihre Datei wird gelöscht

  • Externer Speicher: Wenn Sie Ihre Datei an einen Speicherort geschrieben haben, der auf getExternalFilesDir() oder getExternalCacheDir() basiert, wird Ihre Datei gelöscht. Wenn Sie Ihre Datei an eine andere Stelle geschrieben haben (z. B. Environment.getExternalStoragePublicDirectory() ), wird Ihre Datei nicht gelöscht

  • Wechselspeicher, vor Android 4.4: Wechselspeicher ist nicht offiziell zugänglich; Wenn Ihre Datei dort endet, sollte sie nicht gelöscht werden, wenn Ihre App deinstalliert wird

  • Wechseldatenträger, Android 4.4+: AFAIK, wenn Sie an einen unterstützten Speicherort schreiben ( getExternalFilesDirs() oder getExternalCacheDirs() ), wird Ihre Datei gelöscht, wenn sich das betreffende Bit des Wechselspeichers gerade auf dem Gerät befindet der Deinstallation

Devrath 14.12.2014 16:33
quelle