2012-01-09 36 views
30

SimpleCursorAdapter không dùng một trong các nhà thầu của nó với nhận xét sau:SimpleCursorAdapter không được chấp nhận trong API phiên bản 15?

Không được chấp nhận. Tùy chọn này không được khuyến khích, vì nó dẫn đến các truy vấn con trỏ được thực hiện trên luồng giao diện người dùng của ứng dụng và do đó có thể gây ra phản ứng kém hoặc thậm chí lỗi ứng dụng không ứng phó. Thay vào đó, hãy sử dụng android.app.LoaderManager với android.content.CursorLoader.

Điều này có khiến cả lớp không còn được dùng nữa không? Phương thức khởi tạo khác (tiêu chuẩn) không được dùng nữa.

+0

bạn có ví dụ về cách sử dụng bộ điều hợp với LoadManager và CursorLoader không? – DevZer0

Trả lời

49

Chỉ hàm khởi tạo không còn được dùng nữa, không phải toàn bộ lớp.

SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to) gọi SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to, int flags) với flags đặt thành FLAG_AUTO_REQUERY.

Nhưng FLAG_AUTO_REQUERY bị phản đối vì

[...] nó kết quả trong các truy vấn con trỏ được thực hiện trên của ứng dụng giao diện người dùng chủ đề [...]

vì vậy cũng không được chấp nhận .

Hàm tạo tiêu chuẩn không bị phản đối nhưng rõ ràng là bạn không phải gọi nó bằng flags = FLAG_AUTO_REQUERY!

Cuối cùng, nếu bạn đang sử dụng SimpleCursorAdapter với CursorLoader, như tài liệu gợi ý, cờ này là không cần thiết và bạn có thể vượt qua 0.

+1

Đây là tài liệu: https://developer.android.com/training/load-data-background/setup-loader.html –

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