程序员是否有责任删除临时文件

时间:2012-02-23 08:10:28

标签: android

目前,我有一个应用程序,它将保存临时屏幕截图,并让用户通过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,tempFile仍然存在。我的猜测是JVM还没有终止。

我可以知道,在活动onDestroy期间删除创建的临时文件是我们的应用程序员吗?如果没有,最常见的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

它可以保证每个应用程序保持房屋(或者更确切地说是设备)的清洁。 :)

那就是说

  • 只要android启动并运行,JVM就会一直运行。因此,如果重启设备,该文件应该被删除。
  • 即使应用程序已关闭,如果应用程序正在离开临时文件,用户也很有可能会被冒犯。

完成后,请自行关闭临时文件。甚至不需要在应用程序退出之前!

答案 1 :(得分:0)

AFAIK是的,你有责任删除不再需要的文件(无论是暂时的还是暂时的)。操作系统无法知道您的应用将使用该文件的时长。