目前,我有一个应用程序,它将保存一个临时截图,并让用户通过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();我意识到,即使我退出了我的安卓应用程序(通过按下系统的“后退”按钮),即使我们正在使用deleteOnExit,tempFile仍然在那里。我的猜测是JVM还没有终止。
我想知道,在Activity的onDestroy过程中,删除创建的临时文件是我们的应用程序程序员的责任吗?如果不是,常见的最佳实践是什么?
发布于 2012-02-23 16:14:01
AFAIK是的,删除不再需要的文件(不管是临时的还是非临时的)是你的责任。操作系统无法知道您的应用程序将使用该文件多长时间。
发布于 2012-02-23 16:18:01
这取决于每一个应用程序来保持房子(或者更确切地说是设备)的清洁。:)
这就是说
只要启动并运行,JVM就会一直运行。因此,如果设备处于restarted.
因此,当您使用完临时文件时,请自行关闭它。甚至在应用程序退出之前都不需要!
https://stackoverflow.com/questions/9409246
复制相似问题