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

标签 java android

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

我了解到当磁盘空间不足时,android 系统可以自动删除临时文件。

但是我希望在退出App的时候能自己删除临时文件,怎么办?谢谢!

代码

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

最佳答案

如果 isChangingConfigurations()falseisFinishingtrue<,则删除 onDestroy 中的文件。示例:

@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();
}

关于java - 在android中退出应用程序时如何删除由createTempFile创建的所有临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464264/

相关文章:

java - jsr286 portlet 中的异常处理

java - 什么是NullPointerException,我该如何解决?

java - 如何使用 HandlerThread 类将单独的循环器传递给线程

android - 具有旧样式和不同颜色的 TimePickerDialog

Android - JSON 获取单一值

java - Scala/Java 中的分块下载

java - 使用 EasyMock 测试构造另一个对象的方法

java - 如何动态添加可绘制对象到 TextView

java - 数组更改不起作用

android - android中的 ListView 正常和悬停背景样式