Powinno to dać łatwą odpowiedź, ale nie mogłem znaleźć żadnej. A ponieważ wciąż jestem manekinem z Androidem, przyszedłem tutaj, aby zapytać was o ludzi.Czy istnieje limit zadań AsyncTasks do wykonania w tym samym czasie?
Robię projekt, który wykonuje 10 zadań AsyncTasks przy starcie. Każde zadanie zawiera 3 adresy URL, które zbierają tam dane i nie robią nic ważnego w aplikacji (jeszcze).
Mam również 10 tekstów, których używam do śledzenia postępów AsyncTasks.
Gdy zadanie uruchamia odpowiedni TextView kładzie się na „Start” Gdy zadanie postępuje ona wyznacza jej odpowiedni TextView „Pobieranie” Kiedy zadanie jest zakończone to ustawia odpowiednią TextView na „Zakończone”
To jest to, co zaobserwowałem i zadałem pytanie o AsyncTask. Po uruchomieniu aplikacji zauważyłem, że 5 z wyskakujących tekstów zmieniło się na znacznik "Pobieranie", więc widzę 5 zadań Asynchronicznych wykonujących swoją pracę tak, jak powinny. Po zakończeniu uruchamia nową AsyncTask. Jednak nigdy nie przekraczają tego limitu 5.
Co powoduje, że ten limit 5 AsynchTasks działa w tym samym czasie? Czy spowodowałem to w jakimś pliku, którego nie mogę znaleźć? Czy to jest limit Androida 2.3.3? Może limit urządzenia, którego używam do symulacji aplikacji?
Czy ktoś może dla mnie opracować?
To pytanie jest skierowane tutaj: http://stackoverflow.com/questions/3077461/asynctask-threads-never-die-android – jengelsma
@jengelsma Niezupełnie. Jest to z pewnością powiązane, ale dlaczego liczba ta nie przekracza 5, różni się nieco od tego, dlaczego nigdy nie mieści się w kategorii 5. Pozostaje ona w związku z podstawowym rozmiarem puli, ale to pytanie/odpowiedź nie wyjaśnia, dlaczego ten podstawowy rozmiar puli byłby ograniczony liczba równoczesnych zadań do 5, gdy maksymalna wielkość puli to 128. – kabuko
Myślę, że używasz AsyncTask.execute() zamiast AsyncTask.executeOnExecutor() –