Страница 1 из 1

Как поставить поставить AsyncTask на паузу?

Добавлено: 29 июл 2013, 16:10
sanu0074
У меня есть некоторая проблемка в приложении, нужно поставить AsyncTask на паузу в методе onPause(), когда открывается новое activity.
Я получаю XML от сервера, после разбора каждого узала (их 20шт) в методе onProgressUpdate() извлечонная ссылка на файл передается в мой метод addToBody(), который вызывает AsyncTask загружающий картинку в ImageView. Т.е. после разбора сообщения от сервера, друг за другом запускаются 20 AsyncTask'ов в onProgressUpdate(). Когда не все картинки подгрузились и я тапаю на элемент чтоб открылось новое активити мне надо приостановить загрузку (эти AsyncTask'ки), чтоб в новом открытом активии данные нормально подгрузились (не ожидая пока закончится загрузка в фоновом activity). После того как мы возвращаемся из нового активити в предыдущее, нужно продолжить работу тех 20ти AsyncTask'ов чтоб они прогрузили все картинки в интерфейс.
Я понял что нужно использовать метод onPause(), в котором будут останавливаться AsyncTask'и при переходе в новое активити, и метод onStart() - будет возобновлять загрузку картинок в активити при возврате, но как правильно это сделать? Какими методами пользоваться?

Re: Как поставить поставить AsyncTask на паузу?

Добавлено: 29 июл 2013, 20:50
rezak90
sanu0074 писал(а):У меня есть некоторая проблемка в приложении, нужно поставить AsyncTask на паузу в методе onPause(), когда открывается новое activity.
Я получаю XML от сервера, после разбора каждого узала (их 20шт) в методе onProgressUpdate() извлечонная ссылка на файл передается в мой метод addToBody(), который вызывает AsyncTask загружающий картинку в ImageView. Т.е. после разбора сообщения от сервера, друг за другом запускаются 20 AsyncTask'ов в onProgressUpdate(). Когда не все картинки подгрузились и я тапаю на элемент чтоб открылось новое активити мне надо приостановить загрузку (эти AsyncTask'ки), чтоб в новом открытом активии данные нормально подгрузились (не ожидая пока закончится загрузка в фоновом activity). После того как мы возвращаемся из нового активити в предыдущее, нужно продолжить работу тех 20ти AsyncTask'ов чтоб они прогрузили все картинки в интерфейс.
Я понял что нужно использовать метод onPause(), в котором будут останавливаться AsyncTask'и при переходе в новое активити, и метод onStart() - будет возобновлять загрузку картинок в активити при возврате, но как правильно это сделать? Какими методами пользоваться?
Нужно реализовать LazyAdapter, вот посмотри тот что у меня в проекте

Re: Как поставить поставить AsyncTask на паузу?

Добавлено: 29 июл 2013, 22:03
sanu0074
rezak90 писал(а): Нужно реализовать LazyAdapter, вот посмотри тот что у меня в проекте
А можеш раскоментить, что к чему там у тебя? просто я новичек в андроид-разработке, я написал же для чего мне нужно реализовать это....

Re: Как поставить поставить AsyncTask на паузу?

Добавлено: 29 июл 2013, 22:59
rezak90
будет когда то время то распишу =)
если новичёк то тогда не замарачивайся, понять трудно будет... вкратце то создаётся пулл потоков, сохраняется картинка на дивайс, делается проверка если есть картинка на дивайсе то грузится она иначе качается по сети и грузится... в итоге при последующей прокрутки картинки грузятся по локали что очень быстро

Re: Как поставить поставить AsyncTask на паузу?

Добавлено: 29 июл 2013, 23:04
sanu0074
rezak90 писал(а):будет когда то время то распишу =)
если новичёк то тогда не замарачивайся, понять трудно будет... вкратце то создаётся пулл потоков, сохраняется картинка на дивайс, делается проверка если есть картинка на дивайсе то грузится она иначе качается по сети и грузится... в итоге при последующей прокрутки картинки грузятся по локали что очень быстро
Именно такую вещь и хочу реализовать, я пишу клиент для одного из своих сайтов, если я тебе выложи исходники, сможешь ковырнуть?

Re: Как поставить поставить AsyncTask на паузу?

Добавлено: 30 июл 2013, 00:53
Finch
я думаю что не сможет =)