目前,我有一个应用程序,它将保存临时截图,并让用户通过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尚未终止。
我可以知道,是否我们的应用程序员负责在Activity的onDestroy
期间删除创建的临时文件?如果不是,常用的最佳做法是什么?
我认为它没有被触发的原因是由Android如何管理记忆引起的,后退按钮并不会真正杀死应用程序,而是将其留在内存中,但只是不活跃。我的android手机SD卡空间总是变小,因为许多应用程序不会删除任何缓存/临时文件,不知道为什么,但我认为一旦你不需要它们就删除它们会更好 – 2012-02-23 08:17:28