gpt4 book ai didi

java - 如何在应用程序关闭时删除文件

转载 作者:行者123 更新时间:2023-11-30 01:25:37 24 4
gpt4 key购买 nike

我想在我的应用程序关闭时删除一个文件。我在 Activity 的 onDestroy 方法中执行删除操作。但是当我检查文件是否被删除时,关闭应用程序后,文件仍然存在。

到目前为止,这是我的代码的样子:

@Override
protected void onDestroy() {

File file = new File(Environment.getExternalStorageDirectory().getPath(), "fileName.txt");
if(file.exists()){
file.delete();
}

super.onDestroy();
}

编辑:要求显示有关创建临时文件的代码 fragment :

try {
file = File.createTempFile(Environment.getExternalStorageDirectory().getPath(), fileName);
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

你不应该依赖 onDestroy 方法被调用(系统可以在生命周期到达这个阶段之前中断你的进程)。我建议您使用临时文件夹来保存此类文件,但您仍然有责任将临时文件的大小保持在合理的范围内 (~1 mb)。


更新(关于临时文件 fragment )

您正在尝试提供 ExternalStorageDirectory 的完整路径作为文件名前缀。但是这种方法有点不同。 File.createTempFile 函数除了使用随机名称在特殊的临时文件目录中创建一个文件外什么都不做。因此,我们仍然有责任提供一个临时文件夹,让系统知道该文件适合删除:

public File getTempFile(Context context, String url) {
File file;
try {
String fileName = Uri.parse(url).getLastPathSegment();
file = File.createTempFile(fileName, null, context.getCacheDir());
catch (IOException e) {
// Error while creating file
}
return file;
}

cachedDir是内部存储,这意味着其他应用不能在这里写文件,所以你应该实现FileProvider提供临时文件的 URI。

关于java - 如何在应用程序关闭时删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com