AsyncTask и CursorLoader [Android]

Мой AsyncTask для получения данных является длинным, и в то же время, в процессе создания моего recyclerview Я хотел проверить, если cursorloader был в состоянии правильно запросить у моего контент-провайдера.

Потерпите меня здесь, я использовал обратные вызовы Loader interface а также onLoadFinished чтобы получить результаты. Так как asynctask все еще работает, загрузчик все еще вызывает провайдера контента, так как он обновляется до asynctask заканчивается. Я бы кроме этого, так как onLoadFinished в первую очередь касается заполнения содержимого adapter с данными курсора, что я не должен беспокоиться, что он печатает операторы журнала одновременно как asynctask продолжает бежать, но я хотел подтвердить.

Я намерен в конечном итоге переместить это asynctask в intentservice который вызывается только через broadcast,

1 ответ

Ты можешь позвонить getLoaderManager().restartLoader(URL_LOADER, null, HomeFragment.this); перезапустить загрузчик на вас методом AsyncTask onPostExecute. Вам нужно сначала запустить загрузчик на себя onCreate() метод.

Таким образом, загрузчик обновится с той же проекцией, что и при запуске, и получит результаты операций AsyncTask из БД.