Задать вопрос
Chvalov
@Chvalov

Очистка кэша при выходе из программы и полная остановка, как реализовать?

Хочется при выходе из программы чистить кэш и по возможности полностью выгрузить его из ОЗУ.

Нашел пару набросков кода, но не знаю какой будет эффективный и более правильный:
Здесь 1 вариант, Здесь 3 варианта

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

И еще подскажите какая разница между finish(); и System.exit(); - что дают значиния int в System.exit(?);
  • Вопрос задан
  • 2938 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
thelongrunsmoke
@thelongrunsmoke
Программист
1. Кэш приложения чистится очень просто. Надо вызвать getCacheDir() на контексте, после чего удалить возвращённую папку. Ещё надо добавить разрешение
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>

2. По поводу выхода из приложения. Вы немного не понимаете как система работает с памятью.
На данный момент, рекомендовано пользоваться finish(). А оперативка будет очищена сборщиком мусора, если будет такая необходимость. В AsynkTask и сервисах используйте слабые ссылки, иначе очистка занимаемой ими памяти не гарантируется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Brief Москва
от 150 000 до 210 000 ₽
СМК-РК Москва
от 200 000 до 250 000 ₽
Crystal Service Integration Санкт-Петербург
от 200 000 ₽