У этого должен быть простой ответ, но я не смог его найти. И так как я все еще манекен андроида, я пришел сюда, чтобы спросить вас, люди.Есть ли предел AsyncTasks для выполнения одновременно?
Я делаю этот проект, который выполняет 10 AsyncTasks при запуске. Каждая задача содержит 3 URL-адреса, которые собирают данные и не делают ничего важного в приложении (пока).
У меня также есть 10 текстовых просмотров, которые я использую, чтобы отслеживать прогресс AsyncTasks.
Когда задача запускается соответствующая TextView ставится на «Start» Когда задача прогрессирует она устанавливает его соответствующее TextView «Загрузка» Когда задача закончена она устанавливает свою соответствующую TextView в «Закончено»
Это то, что я наблюдал, и поставил вопрос о AsyncTask. Когда я запускаю приложение, я замечаю, что 5 текстовых просмотров переключаются на маркер «Загрузка», поэтому я вижу, что 5 AsyncTasks выполняют свою работу так, как должны. Когда это будет сделано, он запустит новую AsyncTask. Тем не менее они никогда не достигают этого предела 5.
Что вызывает этот предел 5 AsynchTasks, запущенных одновременно? Я вызвал это в каком-то файле, который я не могу найти? Является ли это пределом Android 2.3.3? Может быть, лимит устройства, который я использую для приложения?
Может ли кто-нибудь разработать для меня?
Этот вопрос решается здесь: http://stackoverflow.com/questions/3077461/asynctask-threads-never-die-android – jengelsma
@jengelsma Не совсем. Это определенно связано, но почему это не выходит за рамки 5, несколько отличается от того, почему он никогда не подпадает под 5. Он по-прежнему зависит от размера основного пула, но этот вопрос/ответ не учитывает, почему размер основного пула ограничил бы количество одновременных задач до 5, когда максимальный размер пула равен 128. – kabuko
Я думаю, вы используете AsyncTask.execute() вместо AsyncTask.executeOnExecutor() –