Управление Несколькими asynctask в моем MainActivity

Я показываю 5 больших Битовых массивов в своем MainActivity, следующем этому Google инструкции, чтобы избежать утечек памяти и не заморозить Нить UI.

http://developer.android.com/training/displaying-bitmaps/process-bitmap.html

Так, я начинаю один Asynctask для каждого из моих 5 больших Битовых массивов в onCreate метод...

Я не замораживаю нить UI (хорошую), потому что я управляю своими долгими процессами в одной нити, которая каждый, но "моя проблема" то, что эти 5 больших Битовых массивов - часть того же самого числа (лицо) и когда приложение начинается, пользователь видит, как различные слои загружаются в различное время.

Я думал в экране-заставке, пока мои изображения не загружаются, но я хотел бы знать, есть ли это, лучший способ состоит в том, чтобы сделать это (потому что всплеск необходим, возможно, меньше чем 1 секунда) или лучший путь, как регистрируют нить UI, когда последнее изображение загружается, и затем покажите все изображения... или возможно попытайтесь загрузить все изображения в том же самом Asynctask ?

Заранее спасибо,

Паола.

0
nl ja de
Я предполагаю, что, естественно, вы показали бы Битовый массив, что вы загружаете в каждом человеке AsyncTask в их соответствующем onPostExecute() . Почему бы не назвать следующее AsyncTask в каждом onPostExecute() экономия Битового массива и показ их в финале AsyncTask ? Таким образом, Битовые массивы будут видимы сразу. Это только наверху моего ума. Я делаю это в приложении, где я получаю данные для "Заголовка" , затем загружаю "Комментарии" и показываю им вместе в AsyncTask для "Комментарии" .
добавлено автор Siddharth Lele, источник
необходимо обеспечить прогресс до погрузки. Посмотрите этот API, который действительно просто использовать: github.com/androidquery/androidquery
добавлено автор Anis BEN NSIR, источник

2 ответы

В последних версиях Android есть dequeue перед пулом потоков исполнителя AsyncTask. Это только позволяет одной задаче бежать за один раз. Это означает, что ваши задачи происходят в заказе, который обычно является, что вы ожидаете. В случае как это, тем не менее, это означает, что вы - не одновременно загружающий все 5 изображений. Взгляните на:

executeOnExecutor(Executor exec, Params... params)

... который позволяет вам обходить dequeue. Это получит вас параллелизм.

Сетевые соединения от AsyncTasks кажутся сомнительными мне. Что, если один из них терпит неудачу? Лучшим решением этой проблемы могло бы быть многопоточное, связанное обслуживание, которое сделало отзыв, когда все 5 изображений были загружены.

0
добавлено
Только для отчетов I' m не загружающий битовые массивы с сети. Только расшифровка этого от ресурсов с некоторыми вариантами как руководство Android объясняет здесь: developer.android.com/training/displaying-bitmaps/…
добавлено автор Paola G, источник

Наконец, я загрузил 5 больших Битовых массивов в том же самом Asynctask. Я загрузил их в doInBackground методе и показываю всех их сразу в onPostExecute моего ASynctask.

Я думал об ответе Сиддхарта Лела, и я хотел что-то как этот, но я понял, что вы получили тот же самый результат, назвав один Asynctask от onPostExecute другого Asynctask и ожидая к последнему Asynctask, чтобы показать ImageViews, что выполнение его в doInBackground методе единственный один Asynctask и ожидание к тому, чтобы поствыполнять этого Asynctask до всех Битовых массивов были загружены, и я думаю, что это более эффективно, потому что у вас нет большего количества нитей это, в чем вы нуждаетесь...

Сообщите мне, есть ли некоторое другое соображение с этим подходом.

Спасибо!

0
добавлено
просто don' t забывают отменять задачу при необходимости и устанавливать перерыв в случае, если у сервера (или связь) есть проблемы. вы могли бы также проверить на возможность соединения прежде даже начать asyncTask.
добавлено автор android developer, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)