Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Sanu0074
58 / 58 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
1

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

29.07.2013, 17:07. Просмотров 1018. Ответов 3
Метки нет (Все метки)

У меня есть некоторая проблемка в приложении, нужно поставить AsyncTask на паузу в методе onPause(), когда открывается новое activity.
Я получаю XML от сервера, после разбора каждого узала (их 20шт) в методе onProgressUpdate() извлечонная ссылка на файл передается в мой метод addToBody(), который вызывает AsyncTask загружающий картинку в ImageView. Т.е. после разбора сообщения от сервера, друг за другом запускаются 20 AsyncTask'ов в onProgressUpdate(). Когда не все картинки подгрузились и я тапаю на элемент чтоб открылось новое активити мне надо приостановить загрузку (эти AsyncTask'ки), чтоб в новом открытом активии данные нормально подгрузились (не ожидая пока закончится загрузка в фоновом activity). После того как мы возвращаемся из нового активити в предыдущее, нужно продолжить работу тех 20ти AsyncTask'ов чтоб они прогрузили все картинки в интерфейс.
Я понял что нужно использовать метод onPause(), в котором будут останавливаться AsyncTask'и при переходе в новое активити, и метод onStart() - будет возобновлять загрузку картинок в активити при возврате, но как правильно это сделать? Какими методами пользоваться?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 17:07
Ответы с готовыми решениями:

Поставить игру на паузу и продолжить с этого же места
В игре,которую я строю,хочу создать кнопку продолжить. Как мне сохранить данные,чтобы нажав на эту...

Как поставить тему Material?
Я много раз пытался сделать это разными способами но ничего не получалось... Может вы подскажете?

Как поставить свой шрифт в RecycleAdapter
public class RecyclerAdapter extends RecyclerView.Adapter <RecyclerAdapter.ViewHolder>{ TextView...

Как поставить рекламу chartboost в Android
Кто может по пунктом обьяснить как внедрить рекламу chartboost в Android?

Как правильно поставить минимальную дату
У меня две кнопки. Первый вылета, второй прилета. У даты вылета minDate = today. А у даты прилета...

3
Wenceslaus
Android Developer
130 / 130 / 6
Регистрация: 05.07.2013
Сообщений: 205
29.07.2013, 17:39 2
На самом деле "поставить на паузу" AsyncTask не выйдет.
В данном случае можно сделать так: В onStop() сохраняем позицию последней загруженной картинки, останавливаем запущенные потоки и/или дальнейший запуск потоков, затем переходим в следующую Activity. А при возврате на основное Activity начинаем грузить картинки с сохранённой позиции.
0
Sanu0074
58 / 58 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
29.07.2013, 17:43  [ТС] 3
Цитата Сообщение от Wenceslaus Посмотреть сообщение
В onStop() сохраняем позицию последней загруженной картинки
А как я узнаю, если они все 20 стартанули с разницей в доли секунд? Примерчик есть подобный? или хоть идея о том как это все сделать (алгоритмик)?
0
Wenceslaus
Android Developer
130 / 130 / 6
Регистрация: 05.07.2013
Сообщений: 205
29.07.2013, 18:22 4
Зачем запускать 20 потоков одновременно? Используйте ThreadPoolExecutor для создания очереди потоков. В вашем случае это оптимальный вариант.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2013, 18:22

Как поставить русскую клаву на эмулятор?
Вопрос в топике.

Как реализовать добавление в избранное (поставить звездочку)
какой компонент может подойти для того, чтобы отмечать "важность" чего-то? в памяти устройства...

Как поставить Google Analytics API в приложение
Здравствуйте, форумчане! Не могли бы вы мне объяснить, как поставить Google Analytics API в...


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

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

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