Điều này cần có câu trả lời dễ dàng, nhưng tôi không thể tìm thấy bất kỳ câu trả lời nào. Và kể từ khi tôi vẫn là một giả android tôi đến đây để hỏi bạn mọi người.Có giới hạn AsyncTask được thực thi cùng một lúc không?
Tôi đã thực hiện dự án này thực hiện 10 AsyncTask khi khởi động. Mỗi tác vụ chứa 3 URL thu thập dữ liệu ở đó và không làm gì quan trọng trong ứng dụng (chưa).
Tôi cũng có 10 lần xem văn bản mà tôi sử dụng để theo dõi tiến độ của AsyncTask.
Khi một nhiệm vụ bắt đầu TextView thích hợp được đưa vào "Start" Khi một nhiệm vụ đang tiến triển nó đặt TextView thích hợp của mình để "tải" Khi một nhiệm vụ được hoàn thành nó đặt TextView thích hợp của mình để "Finished"
Đây là những gì tôi quan sát và đã đặt câu hỏi về AsyncTask. Khi tôi khởi động ứng dụng, tôi nhận thấy 5 trong số các bản xem văn bản được chuyển sang điểm đánh dấu "Tải xuống", vì vậy tôi thấy 5 AsyncTask thực hiện công việc của mình như họ cần. Khi hoàn thành, nó sẽ khởi động AsyncTask mới. Tuy nhiên, họ không bao giờ đạt đến giới hạn đó là 5.
Điều gì khiến giới hạn 5 AsynchTask này chạy cùng một lúc? Tôi có gây ra điều này trong một số tập tin mà tôi không thể tìm thấy? Đây có phải là giới hạn của android 2.3.3 không? Có lẽ một giới hạn của thiết bị tôi đang sử dụng để mô phỏng ứng dụng?
Có ai có thể giải thích cho tôi không?
Câu hỏi này được giải quyết tại đây: http://stackoverflow.com/questions/3077461/asynctask-threads-never-die-android – jengelsma
@jengelsma Không thực sự. Nó chắc chắn liên quan, nhưng tại sao nó không vượt quá 5 là hơi khác với lý do tại sao nó không bao giờ dưới 5. Nó vẫn còn làm với kích thước hồ bơi lõi, nhưng câu hỏi/câu trả lời đó không giải thích tại sao kích thước hồ bơi lõi đó sẽ giới hạn số lượng tác vụ đồng thời đến 5 khi kích thước nhóm tối đa là 128. – kabuko
Tôi nghĩ bạn đang sử dụng AsyncTask.execute() thay vì AsyncTask.executeOnExecutor() –