Зачем использовать getCacheDir () на Android

Android может автоматически удалять файлы в CacheDir, когда система становится низкой в ​​памяти. Но документы говорят, что мы не должны полагаться на систему очистки этого кеша и, следовательно, писать дополнительный код для опроса и удаления.

Если это так, зачем выбирать getCacheDir() над getFilesDir() ? Оба являются in-memory, и последний предлагает разработчикам больше возможностей с точки зрения того, что нужно очищать и когда.

Благодаря!

Android может автоматически удалять файлы в CacheDir, когда система становится низкой в ​​памяти.

Верный. Сторонние приложения также могут удалять файлы из каталогов приложений. И, как отмечает zapl, пользователь может вручную очистить кеш приложения от настроек.

Но документы говорят, что мы не должны полагаться на систему очистки этого кеша и, следовательно, писать дополнительный код для опроса и удаления.

Также правильно.

Если это так, почему нужно выбрать getCacheDir () над getFileDir ()?

Потому что ОС, сторонние приложения и пользователь могут очистить кеш. Однако только потому, что эти вещи могут очистить кеш, это не означает, что они автоматически очистят кеш, и поэтому вам нужно время от времени прибирать кеш. Точно так же, в то время как ваша мать может очистить вашу комнату, обычно это хорошая идея, если вы сами очищаете свою комнату, если вы не хотите, чтобы ее ударили метлой.

И последний предлагает больше возможностей разработчику с точки зрения того, что очищать и когда …

Нет. getCacheDir() возвращает объект File . getFilesDir() возвращает объект File . Они эквивалентны с точки зрения «власти для разработчика с точки зрения того, что нужно очищать и когда».

getCacheDir() возвращает путь к файлам кеша, тогда как getFilesDir() возвращает путь к файлам, созданным и хранящимся во внутренней памяти вашего приложения. Внутреннее хранилище является постоянным: оно не может быть удалено системой.