Как уже упоминалось здесь от CommonsWare , использование java.nio.file, android.system.Os или других встроенных библиотек для достижения моей цели не будет хорошо работать с будущим androidверсии.
Поэтому я использовал локальную базу данных (комната Android) для обработки доступа к файлам приложения (очевидно, только при доступе из моего собственного приложения).
В каждой строке есть столбцы long lastAccessTime
и String filePath
.Для каждого файла, к которому я обращался, я вставлял (если это первый раз) / обновлял свою запись с new Date().getTime()
.
При освобождении места я запрашивал те записи, упорядоченные по lastAccessTime ASC
, поэтому самая старая будет первой,После удаления файла обновите соответствующую запись.
Этот подход стал возможным, поскольку все файлы были сохранены в выделенном каталоге (с использованием getExternalFilesDir ) и управлялись только моим приложением.