Android: Какой метод жизненного цикла активности для очистки кеша в приложении?

1

Я храню свои изображения в подкаталогах в каталоге кеша. У меня есть задача очистки кеша, которую я хочу запустить, которая проверяет размер кеша и при необходимости удаляет файлы (согласно некоторым правилам, которые я настроил). Мой вопрос: какое лучшее время для этого? Я думал в одном из методов жизненного цикла Activity. Любые предложения?

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

2 ответа

0
Лучший ответ

Как пояснил @binnyb, ОС автоматически очистит кеш.

Однако, если то, что вы называете кешем, не является кешем ОС (например, вы пытаетесь сохранить некоторые данные внутри приложения), то предлагаю, сделайте проверку при onPause() или onResume(). Я не буду полагаться на onDestroy услуги.

  • 0
    Я говорю о внутреннем файловом кеше приложения. onResume, кажется, работает хорошо, потому что он получает удар, когда я возвращаюсь к родительской активности, которая сохраняет кучу кэшированных изображений на диск. Я просто создал там ветку очистки, и она прекрасно работает.
0

Я бы, возможно, отключил Service с помощью отдельного потока, чтобы сделать это в onDestroy() основных действий, возможно, отслеживать время последней очистки в службе, чтобы убедиться, что тяжелая работа только каждые несколько минут. onDestroy() не гарантируется, что вызывается для каждого вида прекращения действия, но он надежно выполняется при нормальном уничтожении активности, например, из-за поддержки деятельности. Просто убедитесь, что что-то, что касается диска, происходит за пределами потока пользовательского интерфейса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню