Pracuję nad małą listą rzeczy do zrobienia. Użyłem CursorLoader do zaktualizowania ToDolistview od dostawcy treści. Mam napisaną funkcję onNewItemAdded()
, która jest wywoływana, gdy użytkownik wprowadza nowy element w widoku tekstowym i klika enter. Patrz poniżej:W jaki sposób CursorLoader automatycznie aktualizuje widok, nawet jeśli aplikacja jest nieaktywna?
Przeczytałem, CursorLoader automatycznie aktualizuje widok, gdy istnieje zmiana danych w db dostawcy treści. To znaczy, przypuszczam, że getLoaderManager().restartLoader(0, null, this)
musi być wywoływany niejawnie, ilekroć nastąpi zmiana danych, prawda? Ale tak się nie dzieje. Ilekroć dodaję nowy element (element jest dodawany do bazy danych z onNewItemAdded
, ale restartLoader nie jest jawnie wywoływany), wstrzymaj tę aktywność i wznów ją ponownie. Nie widzę żadnego niejawnego wywołania restartLoader (nawet jeśli zmieniono db), a widok listy również nie został zaktualizowany o nowy element dodany. Dlaczego? W jaki sposób CursorLoader
automatycznie aktualizuje widok, nawet jeśli aplikacja nie jest aktywna ??? Pozdrowienia :)
EDYCJA: Mam również używany getContext().getContentResolver().notifyChange(insertedId, null)
we wstawce mojego dostawcy treści.
Ten wydawał się być w porządku i najłatwiejszy, pracował dla mnie, ale czy istnieje lepszy sposób? – zeroDivider