Я реализовал загрузчик в своем приложении для запроса данных из базы данных. Я слушаю происходящие изменения, внедряя LoaderCallbacks<Cursor>
listener. Проблема, с которой я сталкиваюсь, заключается в использовании метода onLoaderReset(Loader<Cursor> loader)
, когда мои данные меняются, и я хочу аннулировать и освободить любые данные, связанные с загрузчиком. Во всех примерах в этом методе есть следующий вызов:
mAdapter.swapCursor(null);
Но дело в том, что я не использую данные из курсора в адаптере, я использую их каким-то другим образом в своем приложении.
(например, непосредственно из возвращенного курсора в onLoadFinished(Loader<Cursor> loader, Cursor data)
)
@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);
}
}
Что здесь было бы уместно сделать, похожее на mAdapter.swapCursor
. У меня нет большого опыта работы с загрузчиками, на самом деле я только начал с ними работать, поэтому, если у кого-то есть решение этой проблемы, я был бы признателен. Спасибо!
РЕДАКТИРОВАТЬ: На данный момент я передаю null загрузчику, и он работает следующим образом:
@Override
public void onLoaderReset(Loader<Cursor> loader) {
loader = null;
}
};
Но правильное ли это решение?