2012-01-19 32 views
8

Hiện tại, tôi đang sử dụng AsyncTask để xử lý kết nối Http và truy xuất dữ liệu dưới định dạng JSON.
Tải tất cả dữ liệu là tầm thường nhưng nó tiêu tốn quá nhiều thời gian, vì vậy tôi quyết định chuyển sang tải 10 mục cùng một lúc bằng cách sử dụng LIMIT OFFSET (mysql).
Tiếp theo, tôi thiết lập sự kiện onScroll cho chế độ xem danh sách của mình để tạo AsyncTask mới mỗi khi người dùng cuộn. Tuy nhiên, từ những gì tôi đọc, AsyncTask được lưu trữ trong một hồ bơi thread được giới hạn 5 chủ đề tại một thời điểm, vì vậy tôi không chắc chắn đây là một cách tiếp cận đúng. Tôi là người mới đến ứng dụng khách/máy chủ, vì vậy tôi có thể cho tôi lời khuyên về vấn đề này không? Bất kỳ bài viết liên quan, tài liệu sẽ được đánh giá rất nhiều.Làm cách nào để cập nhật ListView khi cuộn trong khi truy xuất dữ liệu từ máy chủ trong Android?

Trả lời

12

Dưới đây là vài liên kết hữu ích cho nó,

Android: Implementing progressbar and "loading..." for Endless List like Android Market

Endless Listview with current Async Task

Android Endless List

http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/

http://mylifewithandroid.blogspot.com/2010/03/progressively-loading-listviews.html

Trong bước đơn giản,

Như dùng cuộn - phát hiện phần cuối của danh sách
1) Hiển thị một tiến bộ thông báo
2) Yêu cầu cập nhật
3) Nhận cập nhật (không đồng bộ) và mở rộng danh sách

+0

Danh sách tuyệt vời! Cảm ơn rất nhiều. – Cathy

+0

luôn chào đón bạn của tôi !! –

2

Nếu bạn đang sử dụng ListView, tôi tin rằng tôi có thể yên tâm giả định rằng bạn phải sử dụng một số loại ListAdapter. Thay vì bắt đầu một sự kiện AsyncTask mới trong sự kiện onScroll, bạn chỉ nên duy trì một AsyncTask để truy xuất dữ liệu từ máy chủ, thêm dữ liệu đó vào bộ dữ liệu ListAdapter và sau đó gọi notifyDatasetChanged trên số ListAdapter.

ListAdapterListView sẽ xử lý phần còn lại.

2

Một cách tiếp cận điển hình là ví dụ: để tải 25 ban đầu và sau đó có chân trang trong danh sách hiển thị, ví dụ: số lượng hiện tại và tổng số và khi nhấn tải khác 25 và tiếp tục. Đó sẽ là một loại phân trang tải.

Khi bạn làm điều đó bạn phải giữ vị trí hiện tại và thông báo cho bộ điều hợp danh sách đã thay đổi.

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