Attualmente, ho un'applicazione che salverà uno screenshot temporaneo e consentirà agli utenti di condividerlo tramite Facebook. Il codice di salvataggio dell'immagine è più o meno come segue.È responsabilità del programmatore eliminare il file temporaneo
// Use external cache dir, as our image file is large (>1M)
File outputDir = this.getExternalCacheDir();
File tempFile = File.createTempFile("CHEOK", "CHEOK", outputDir);
// In Desktop's J2SE, this file will automatically be deleted, once my desktop
// application quit. However, this is not the case for Android. My guess is, JVM
// is not terminated, even our Android application had quit.
tempFile.deleteOnExit();
mi rendo conto anche io lasciare il mio applicazione Android (Premendo sistema pulsante "indietro"), il file temporaneo è ancora lì, anche stiamo usando deleteOnExit
. La mia ipotesi è che la JVM non sia ancora terminata.
Posso sapere, è responsabilità del programmatore dell'applicazione, eliminare il file temporaneo creato durante l'attività onDestroy
? In caso contrario, qual è la migliore prassi comune?
Penso che il motivo per cui non è stato attivato a causa di come Android gestisce i ricordi, un pulsante indietro non ucciderà l'app ma la lascerà in memoria ma non sarà attiva. Il mio spazio sulla scheda SD del mio telefono Android diventa sempre più piccolo in quanto molte app non eliminano i file cache/temp, non sono sicuro del perché, ma penso che sia meglio eliminarli una volta che non ne hai bisogno –