¿Es responsabilidad del programador borrar el archivo temporal?

Actualmente, tengo una aplicación, que guardará una captura de pantalla temporal, y dejar que el usuario compartirlo a través de Facebook. El código de ahorro de la imagen es más o menos como sigue.

// 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(); 

Me doy cuenta incluso de salir de mi aplicación de Android (Al presionar el botón de "volver" del sistema), el tempFile todavía está allí incluso estamos utilizando deleteOnExit . Mi conjetura es que la JVM no está terminada todavía.

¿Puedo saber, es nuestra responsabilidad del programador de la aplicación, para suprimir el archivo temporal creado, durante el onDestroy la onDestroy ? En caso negativo, ¿cuál es la mejor práctica común?

AFAIK sí, es su responsabilidad eliminar los archivos que ya no son necesarios (ya sean temporales o no). El sistema operativo no puede saber cuánto tiempo tardará su aplicación en utilizar ese archivo.

Su hasta cada aplicación para mantener la casa (o mejor dicho, el dispositivo) limpio. 🙂

Habiendo dicho eso

  • La JVM siempre se está ejecutando en la medida en que Android se inicia y funciona. Por lo tanto, el archivo debe eliminarse si se reinicia el dispositivo.
  • Existe una buena probabilidad de que el usuario se sienta ofendido si una aplicación deja archivos temporales incluso cuando la aplicación se ha cerrado.

Así que cierre el archivo temporal usted mismo, cuando haya terminado con él. ¡Ni siquiera es necesario hasta que salga la aplicación!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.