Ładowarki i onLoaderReset Android
Zaimplementowałem program ładujący w mojej aplikacji do wyszukiwania danych z bazy danych. Słucham zmian, które się zdarzają ”poprzez wdrożenieLoaderCallbacks<Cursor>
słuchacz. Mam problem z używaniemonLoaderReset(Loader<Cursor> loader)
metoda, gdy moje dane się zmieniają i chcę unieważnić i zwolnić wszelkie dane związane z programem ładującym. We wszystkich przykładach w tej metodzie występuje następujące wywołanie:
mAdapter.swapCursor(null);
Ale rzecz w tym, że nie używam danych z kursora w adapterze, używam go w inny sposób w mojej aplikacji.
(bezpośrednio ze zwróconego kursora wonLoadFinished(Loader<Cursor> loader, Cursor data)
, na przykład)
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (data.moveToFirst()) {
TOTAL_CARDS = data.getCount();
mView.createCards(TOTAL_CARDS);
} else {
TOTAL_CARDS = 0;
mView.createCards(TOTAL_CARDS);
}
}
Jaka byłaby odpowiednia rzecz do zrobienia tutaj, czyli podobniemAdapter.swapCursor
. Nie mam dużego doświadczenia z ładowaczami, w rzeczywistości dopiero zacząłem z nimi pracować, więc jeśli ktoś ma rozwiązanie tego problemu, byłbym wdzięczny. Dzięki!
EDYCJA: Na razie przekazuję wartość null do programu ładującego i działa tak:
@Override
public void onLoaderReset(Loader<Cursor> loader) {
loader = null;
}
};
Ale czy to jest właściwe rozwiązanie?