как аккумулировать информацию в AsyncTaskLoadere

255
07 сентября 2017, 16:37

Загружаю данные в фрагмент с помощью AsyncTaskLoader + EndlessRecyclerViewScrollListener. Имею такой загрузщик:

public static abstract class MovieLoader extends AsyncTaskLoader<List<Movie>> {
        protected abstract List<Movie> getMovie();
        private List<Movie> mCachedMovies;
        public MovieLoader(Context context) {
            super(context);
        }
        @Override
        public void onStartLoading(){
            if (mCachedMovies != null){
                deliverResult(mCachedMovies);
            }
            if (mCachedMovies == null || takeContentChanged()){
                forceLoad();
            }
        }
        @Override
        public void deliverResult(List<Movie> moviesResponse){
            if (isReset()){
                return;
            }
            mCachedMovies = moviesResponse;
            if (isStarted()){
                super.deliverResult(mCachedMovies);
            }
        }

        @Override
        protected void onReset(){
            onStopLoading();
            if (mCachedMovies != null){
                mCachedMovies = null;
            }
        }
        @Override
        public List<Movie> loadInBackground() {
            return getMovie();
        }
    }

Так загружаю полученый результат в Adapter:

   private void bindMovies(List<Movie> movies){
        mMovieList.addAll(movies);
        notifyDataSetChanged();
        hideProgress();
    }

В результате при повороте екрана получаю только последнюю подгруженую информацию. А также при переходах между фрагментами(Использую FragmentStatePagerAdapter) записи начинают дублироваться.

  1. Как можно "аккумулировать" информацию в загрузщике?

  2. Как избежать дублирования информации с помощью загрузщика?

READ ALSO
DateFormat в Java

DateFormat в Java

как мне вывести дату чтобы в консоли выводило по-украински?

289
Обернуть все теги td в a

Обернуть все теги td в a

Мне нужно обернуть в table, в каждом теге tr все td в одну ссылкуКак это можно сделать? Это необходимо чтобы вся информация индексировалась

239
Добавить баннер слева на Drupal

Добавить баннер слева на Drupal

Подскажите как добавить баннер на сайте Drupal, перерыл все меню уже, гугл, но не нашел выхода из данной ситуации, где они добавляются и как? Благодарен...

243
Метатег &lt;meta name=&ldquo;viewport&rdquo; content=&ldquo;height=device-height&rdquo;&gt;. Как на телефонах при появлении клавиатуры запретить менять высоту?

Метатег <meta name=“viewport” content=“height=device-height”>. Как на телефонах при появлении клавиатуры запретить менять высоту?

Я хочу написать сайт, в котором скроллить можно только внутри моего блока, а не внутри bodyЯ использую метатег

220