2011-09-27 26 views
10

Tôi đang viết một ứng dụng cho Android cho phép người dùng duyệt qua danh sách các tệp và tải xuống chúng. Đối với mỗi lần tải xuống, tôi đã tạo một chuỗi và tôi tải xuống tệp bằng cá thể HttpURLConnection (bằng cách đọc từ kết nối trong một vòng lặp while).Tải xuống nhiều tệp cùng một lúc trong các ứng dụng Android

Phương pháp này hoạt động tốt với một lượt tải xuống đang hoạt động. Nhưng khi người dùng bắt đầu nhiều hơn, hiệu suất tải xuống sẽ giảm đáng kể. Hầu hết thời gian, các tải xuống song song này tiêu thụ tất cả băng thông và người dùng không thể duyệt các tệp (sử dụng một HttpUrlConnection khác để tải danh sách tệp).

Bất kỳ đề xuất nào về tinh chỉnh hệ thống tải xuống? Cảm ơn.

P.S .: Phương pháp mà các trình duyệt phổ biến như Google Chrome và Firefox có vẻ tốt. Bất cứ ai cũng biết cách họ làm việc?

+0

Bạn có thể thử cho việc tải xuống luồng A ưu tiên thấp hơn. – vee

+0

Làm thế nào điều đó có thể? – Sadjad

+0

Tài liệu: http://developer.android.com/reference/java/lang/Thread.html#setPriority(int) Ví dụ: http://stackoverflow.com/questions/5198518/whats-the-difference -between-thread-setpriority-and-android-os-process-setthrea – vee

Trả lời

7

Than ôi, tôi không biết cách nào để điều tiết một số kết nối nhất định. Tuy nhiên, cách tiếp cận thực tế sẽ là triển khai hàng đợi tải xuống để kiểm soát số lượt tải xuống đồng thời. Trong trường hợp của bạn, bạn có thể muốn chỉ để cho 1 điều tải xuống tại một thời điểm. Điều này có thể được thực hiện theo một vài cách khác nhau.

Dưới đây là một cách để làm điều đó với Handlers và Looper: http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/

Sửa 1: Xem comment chuột của. Có thể thông minh hơn để có tối đa 2 chuỗi tải xuống cùng một lúc.

+7

Tôi sẽ không khuyên bạn chỉ tải xuống một luồng tại một thời điểm. Sự cố có thể xảy ra nếu một luồng không thể truy cập được, tải xuống chậm hoặc có sự cố khác. Sau đó, tất cả các tải xuống phải đợi cho đến khi kết thúc hoặc lỗi. –

+1

@một điểm tốt. – Ian

Các vấn đề liên quan