Meine Anwendung ermöglicht Benutzern das Erstellen und Ändern von Dateien. Ich möchte, dass sie eine Datei als E-Mail-Anhang senden können. Also muss ich zuerst eine temporäre Datei erstellen und schreiben, die ich dann an die E-Mail anhefte. Leider scheint es auf der Grundlage der einzigen Antwort auf die unten stehende Frage keinen guten Weg zu geben zu wissen, dass die E-Mail-Anwendung mit der temporären Datei erstellt wurde.
Android: Problem beim Senden von E-Mails mit Anhang aus meiner Anwendung
Da ich keine Benachrichtigung erhalten kann, dass die E-Mail mit der Datei erstellt wurde, sind meine Regeln zum Löschen temporärer Dateien ziemlich schlecht. Sie sind so etwas wie "check für temporäre Dateien onPause und onCreate; löschen Sie etwas über 5 Minuten alt".
Da meine Regeln so hässlich sind, bin ich besonders besorgt, wo ich die Dateien schreiben soll. Ich kann sie nicht in das interne Cache-Verzeichnis schreiben, da ihre Größe 1 MB weit überschreiten kann. Ist es sinnvoll, die SD-Karte eines Ordners zu erstellen: "/ sdcard / myapp_tmp"? Was ist die übliche Praxis für diese Situation?
Sie können die Methode getExternalCacheDir()
von Context verwenden, um eine Dateireferenz, in der Sie Dateien auf einer SD-Karte speichern können. Natürlich müssen Sie die üblichen Überprüfungen durchführen, um sicherzustellen, dass der externe Speicher wie gewohnt aktiviert und beschreibbar ist, aber dies ist wahrscheinlich der beste Ort, um diesen Typ von temporärer Datei zu speichern. Eine Sache, die Sie vielleicht tun möchten, ist nur eine maximale Menge an Speicherplatz, die Sie im Cache-Verzeichnis verwenden können, und dann, jedes Mal, wenn Sie eine neue temporäre Datei schreiben müssen, wenn diese Datei den maximalen Speicherplatz überschreitet, dann starten Sie das Löschen der temporäre Dateien, beginnend mit dem ältesten, bis genügend Platz vorhanden ist.
EDIT: Alternativ könnte so etwas funktionieren:
%Vor%Vor dem "." sollte der Ordner versteckt werden, bin ich ziemlich sicher.
Tags und Links android