如何在Android中退出应用程序时删除由createTempFile创建的所有临时文件?

2022-09-03 05:36:12

我使用以下代码创建一些临时文件,并将tem包装为输入steam以发送到客户端。

我知道当磁盘空间不足时,Android系统可以自动删除临时文件。

但是我希望当我退出应用程序时,我可以自己删除临时文件,我该怎么办?谢谢!

法典

File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", "extension", outputDir);

答案 1

删除 中的文件,如果 是 或 是 。例:onDestroyisChangingConfigurations()falseisFinishingtrue

@Override protected void onDestroy() {
  super.onDestroy();
  if(!isChangingConfigurations()) {
    deleteTempFiles(getCacheDir());
  }
}

private boolean deleteTempFiles(File file) {
  if (file.isDirectory()) {
    File[] files = file.listFiles();
    if (files != null) {
      for (File f : files) {
        if (f.isDirectory()) {
          deleteTempFiles(f);
        } else {
          f.delete();
        }
      }
    }
  }
  return file.delete();
}

答案 2

调用 deleteOnExit() 方法!

调用活动中的 delete() 方法。onStop()

编辑:

如果您调用delete()来确保您的代码即使在应用程序被系统破坏时也能正常工作,那可能会更好。onDestroy()


推荐