我有一个应用程序可以在设备上收听新照片,调整它们的大小并上传到云端。
当我在拍摄照片之间有短暂的停顿(例如 1 秒)时,一切都很好,但是当我快速拍摄照片而没有任何停顿时,我遇到了异常:
java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20180116_150824_1.jpg (No such file or directory)
在我的compressAndResize函数中。
在那个函数中,我正在做这样的事情:
private static File compressAndResizeImage(File sourceFile, File destination) throws IOException {
File compressedAssetFile = new File(destination, sourceFile.getName());
if (!compressedAssetFile.getParentFile().exists()) {
//noinspection ResultOfMethodCallIgnored
compressedAssetFile.getParentFile().mkdirs();
}
//noinspection ResultOfMethodCallIgnored
compressedAssetFile.getParentFile().createNewFile();
FileOutputStream fileOutputStream = null;
int width;
int height;
try {
fileOutputStream = new FileOutputStream(compressedAssetFile);
Bitmap source = BitmapFactory.decodeFile(sourceFile.getAbsolutePath());
int sourceWidth = source.getWidth();
int sourceHeight = source.getHeight();
...
BitmapFactory.decodeFile方法中抛出异常。
我不知道为什么当我快速拍照时会发生这种行为。
有人可以解释我为什么会这样吗?
提前致谢!