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

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

Войти
Регистрация
Восстановить пароль
 
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
#1

Как поставить поставить AsyncTask на паузу? - Программирование Android

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

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

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

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

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