Chvalov
@Chvalov

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

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

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

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

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

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

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

Похожие вопросы