Ответ 1
Android может автоматически удалять файлы в CacheDir, когда система становится низкой в памяти.
Правильно. Сторонние приложения также могут удалять файлы из каталогов приложений. И, как отмечает zapl, пользователь может вручную очистить кэш приложений от настроек.
Но документы говорят, что мы не должны полагаться на систему, очищающую этот кеш, и, следовательно, писать дополнительный код для опроса и удаления.
Также правильно.
Если это так, почему нужно выбрать getCacheDir() через getFileDir()?
Поскольку ОС, сторонние приложения и пользователь могут очистить кеш. Однако только потому, что эти вещи могут очистить кеш, это не значит, что они автоматически очистят кеш, и поэтому вам нужно время от времени тайно вынимать кеш. Точно так же, в то время как ваша мать может очистить вашу комнату, обычно это хорошая идея, если вы сами очищаете свою комнату, если вы не хотите, чтобы ее ударили метлой.
и последний предлагает разработчику больше возможностей с точки зрения очистки и когда...
Нет, это не так. getCacheDir()
возвращает объект File
. getFilesDir()
возвращает объект File
. Они эквивалентны с точки зрения "мощности для разработчика с точки зрения того, что нужно очищать и когда".