現在、私は一時的なスクリーンショットを保存し、ユーザがfacebookで共有できるようにするアプリケーションを用意しています。イメージセービングコードは次のように多かれ少なかれです。一時ファイルを削除するのはプログラマの責任ですか?
// 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();
私も、私は(システム「戻る」ボタンを押すことで)私のAndroidアプリケーションを終了して実現し、一時ファイルがまだそこにも、私たちはdeleteOnExit
を使用しています。私の推測では、JVMはまだ終了していないということです。
アクティビティのonDestroy
の間に作成された一時ファイルを削除することは、私たちのアプリケーションプログラマの責任ですか?そうでない場合は、一般的なベストプラクティスは何ですか?
私はAndroidがメモリを管理する方法によって引き起こされたのではないと思うのですが、戻るボタンは本当にアプリを殺すのではなくメモリに残しておきます。私のアンドロイドの携帯電話のSDカードの容量は、アプリケーションの多くがキャッシュ/一時ファイルを削除しないので、いつも小さくなっています。理由はよく分かりませんが、一度削除したほうがよいと思うのですが、 –