Poszukuję sposobu zawieszenia powiadomień o danym 's Uri
. Sprawa użycie jest:Wyłącz powiadomienia na temat identyfikatora UID ContentProvider
Activity
jest związany zCursorAdapter
przezCursorLoader
.- A
Service
może wykonać wiele aktualizacji wsadowych, jednorzędowych naContentProvider
. - W przypadku każdej aktualizacji wiersza
CursorLoader
przeładuje swoją zawartość, ponieważContentProvider
powiadamia detektory oContentResolver#notifyChange
.
Ponieważ nie mogę edytować ContentProvider
i mam żadnej kontroli nad wykonywaniem zapytań wsadowych, czy istnieje sposób, aby zawiesić informację na Uri
(w wykonującym Service
) aż wszystkie ContentProvider
-managed zapytań zostały wykonany? Potrzebuję tego, aby uniknąć migotania spowodowanego ciągłym monitowaniem numeru CursorLoader
.
Aby dostać tego prawa: ani mieć wpływ na usługi ani CP? Jeśli z drugiej strony usługa jest pod Twoją kontrolą, proszę podać nieco więcej szczegółów na temat tego, jakiego rodzaju aktualizacje CP robisz. –
Wykonuję serię zapytań typu "UPDATE lub INSERT" w prostej pętli 'for'. Używam 'ContentProvider', który powiadamia po każdym' insert' lub 'update', ale w tej konkretnej sytuacji chcę móc zawiesić wszystkie powiadomienia, dopóki nie skończę aktualizować wszystkich encji. – frapontillo
Aby być jeszcze bardziej szczegółowym, generuję 'ContentProvider' przy pomocy generatora Nicolasa Kleina (https: // github.com/foxykeep/ContentProviderCodeGenerator), który pod koniec 'update (Uri uri, wartości ContentValues, Wybór ciągu, String [] selectionArgs) robi proste' getContext(). getContentResolver(). notifyChange (uri, null); '. – frapontillo