Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,235
#1

AsynkTask и утечки памяти - Android

04.05.2016, 15:25. Просмотров 115. Ответов 2
Метки нет (Все метки)

Вот смотрите, если я определил AsynkTask внутри активити, то AsynkTask у меня получается внутренний класс активити и содержит скрытую ссылку на активити. И AsynkTask завершается только когда завершается doInBackground() метод. То есть если даже в момент выполнения doInBackground, экран телефона перевернули(произошло пересоздание активити), то утечки впринципи все равно не должно быть по большому счету, потому что как только doInBackground выполнится, метод PostExecute, по ошибке, вернет результат в старый экземпляр активити и AsynkTask завершится. Так вот после того как AsynkTask завершится (выполнится doInBackground и PostExecute), он уже не будет ссылаться на старый экземпляр активити(до поворота)? Сборщик мусора сможет после этого удалить старый активити или даже после выполнения своих методов AsynkTask будет жить в памяти и держать ссылку на активити если так то почему? Просто из за чего здесь получается утечка памяти?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2016, 15:25     AsynkTask и утечки памяти
Посмотрите здесь:

Освобождение памяти Android
Handler vs Service vs AsynkTask Android
Активити не уходят из памяти Android
Android Пример с AsynkTask
Android При загрузке файла в AsynkTask в строке уведомлений вывести анимацию иконки загрузки
Дамп памяти Android
Как связать ArrayList, ListView и AsynkTask? Android
Android Как правильно отобразить массив сообщений в AsynkTask?
Android Очистка памяти Bitmap
AsynkTask Android
Изучаю AsynkTask Android
Утечка памяти Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2195 / 1809 / 562
Регистрация: 12.05.2014
Сообщений: 6,445
Завершенные тесты: 1
04.05.2016, 15:32     AsynkTask и утечки памяти #2
просто не пересоздавай активити при повороте и все

и вот лично я считаю что асинктаски внутри активити создают люди, которые не познали калбеки, интерфейсы и они не понимают как рефакторить код, но это не совсем по теме утечек
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,235
04.05.2016, 15:43  [ТС]     AsynkTask и утечки памяти #3
просто не пересоздавай активити при повороте и все
Ну впринципи это верно(я так и делаю), просто везде пишут что AsynkTask внутри активити создает утечку. Вот и интересно стало за счет чего же утечка возникает? Понимаю только, что AsynkTask может обратится в PostExecute() к элементам активити, которой уже не существует.
Yandex
Объявления
04.05.2016, 15:43     AsynkTask и утечки памяти
Ответ Создать тему
Опции темы

Текущее время: 16:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru