Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
#1

AsynkTask и утечки памяти - Программирование Android

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

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

AsynkTask
Почему AsynkTask использовать уже не рекомендуется??

Пример с AsynkTask
Как из AsynkTask расположенного в одном package отобразить Bitmap в ImageView...

Изучаю AsynkTask
Пытаюсь через AsynkTask получить get запрос и вывести объекты из ссылки. Но...

Handler vs Service vs AsynkTask
Есть 2 Activity, пусть A1 и A2. В методе onCreate() Activity A1 запускается...

Как связать ArrayList, ListView и AsynkTask?
В AsinkTask в doInBackGround у меня есть массив final ArrayList<String> vkmass...

Как правильно отобразить массив сообщений в AsynkTask?
как правильно отобразить массив сообщений в AsynkTask методе onPostExecute ...

2
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
04.05.2016, 15:32 #2
просто не пересоздавай активити при повороте и все

и вот лично я считаю что асинктаски внутри активити создают люди, которые не познали калбеки, интерфейсы и они не понимают как рефакторить код, но это не совсем по теме утечек
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
04.05.2016, 15:43  [ТС] #3
просто не пересоздавай активити при повороте и все
Ну впринципи это верно(я так и делаю), просто везде пишут что AsynkTask внутри активити создает утечку. Вот и интересно стало за счет чего же утечка возникает? Понимаю только, что AsynkTask может обратится в PostExecute() к элементам активити, которой уже не существует.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2016, 15:43
Привет! Вот еще темы с решениями:

При загрузке файла в AsynkTask в строке уведомлений вывести анимацию иконки загрузки
При загрузке файла в AsynkTask хочу в строке уведомлений вывести анимацию...

Утечки памяти без выделения памяти?
Человек использует _CrtDumpMemoryLeaks() для отлова утечек, и обратился ко мне...

Утечки памяти
Не могу найти и "убить" в программе СЕМЬ утечек памяти. Уже впору вешаться....

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru