Tôi đang tìm cách tạm ngưng thông báo trên Uri
của ContentProvider
. Trường hợp sử dụng là:Tắt thông báo trên URI ContentProvider
- An
Activity
được liên kết vớiCursorAdapter
thông quaCursorLoader
. - A
Service
có thể thực hiện rất nhiều đợt, cập nhật hàng đơn trênContentProvider
. CursorLoader
sẽ tải lại nội dung của nó trên mọi cập nhật hàng, vìContentProvider
thông báo cho người nghe theo sốContentResolver#notifyChange
.
Vì tôi không thể chỉnh sửa ContentProvider
, và tôi không có quyền kiểm soát việc thực hiện các truy vấn hàng loạt, là có một cách để đình chỉ thông báo trên Uri
(trong thực hiện Service
) cho đến khi tất cả các ContentProvider
truy vấn quản lý bởi đã Thực thi? Tôi cần điều này để tránh các nhấp nháy gây ra bởi việc tiếp tục requerying của CursorLoader
.
Để có được quyền này: Bạn phải không ảnh hưởng đến các dịch vụ cũng không phải là CP? Nếu mặt khác, Dịch vụ nằm trong tầm kiểm soát của bạn, vui lòng cung cấp thêm một chút chi tiết về loại cập nhật CP nào bạn đang thực hiện. –
Tôi đang thực hiện một loạt các truy vấn "UPDATE hoặc INSERT" bên trong một vòng lặp 'for' đơn giản. Tôi đang sử dụng 'ContentProvider' để thông báo sau mỗi' chèn' hoặc 'cập nhật' nhưng, trong tình huống cụ thể này, tôi muốn có thể tạm dừng tất cả các thông báo cho đến khi tôi cập nhật xong tất cả các thực thể. – frapontillo
Để chi tiết hơn nữa, tôi đang tạo ra 'ContentProvider' của tôi với một trình tạo bởi Nicolas Klein (https: // github.com/foxykeep/ContentProviderCodeGenerator), ở phần cuối của một cập nhật '(Uri uri, ContentValues values, String selection, String [] selectionArgs)' thực hiện một 'getContext(). getContentResolver(). notifyChange (uri, null); '. – frapontillo