我在android中遇到了一个非常奇怪的问题:
在我的应用程序中,我将从缓存目录上传文件。如果用户使用清洁应用程序(如cleanmaster)在我的应用程序上传文件时清除应用程序的缓存目录,则所有文件都被删除,但上传任务根本不会停止,并且将在以后成功完成而不会丢失任何数据。而且,虽然这些“无源文件任务”仍在上传, 我不能再访问缓存目录了,例如如果我想在缓存目录中创建一个新文件,我会收到'ebusy'错误。
我的应用程序使用FileInputStream打开,在上传任务中读取数据表单文件,如下所示:
InputSream in = new FileInputStream(file);
byte[] buffer = new byte[4 * 1024];
int bytes;
while ((bytes = in.read(buffer)) != -1) {
netOutputStream.write(buffer, 0, bytes);
}
in.close();
我假设系统在FileInputStream打开时缓存了文件,如何禁用缓存?我想要的是:如果文件被删除,则从流抛出错误读取并且我的上传任务停止。
我的问题: