Кеширует ли Android файлы с SD-карты во внутреннюю память? - PullRequest
0 голосов
/ 07 ноября 2019

Есть ситуация.

  1. MediaPlayer воспроизводит некоторый файл, в конце файла он начинает воспроизведение следующего.

  2. Все файлы, хранящиеся на SD-карте (не эмулированные, но физические)

  3. Android KitKat 4.4.4 (если это важно)

Итак, когдаПервый файл готов к воспроизведению, а второй начинает воспроизводиться, я проверяю, существует ли предыдущий файл (несмотря ни на что, это просто обходной путь). И если мне нужно физически удалить USB, чем сделать File.exist, возвращается true, но файла уже нет. Так что это должно быть ложно.

Так что вопрос. Кеширует ли Android файлы SD-карты (недавно прочитанные) во внутреннюю память (какой-то кеш)? И если да, как мне очистить этот кеш или удалить что-то из него?

PS Да, проверка File.exist идет после удаления USB, через 2-3 секунды после.

1 Ответ

0 голосов
/ 07 ноября 2019

Нет, Android по умолчанию не кэширует файлы во внутренней памяти.

Возможно, вы инициализировали свой файл перед удалением файла, поэтому он возвращает true в следующем коде.

  • Чтовам нужно это запустить этот код, когда вам нужно на runtime. Надеюсь, это решит вашу проблему здесь.
File file = new File(filePath);

if(file.exists())      
//Do something
else
// Do something else.```
...