RecyclerView se bloque lors de la mise à jour en haut

J'ai un RecyclerView dans mon application tout fonctionne bien, je suis tout de défilement lorsque le dernier élément est visible, je suis de l'ajout de certains élément de plus vers le bas et il fonctionne très bien. Maintenant quel est le problème, c'est que j'ai un Handler qui court après toutes les 5 secondes et vérifiez s'il ya une mise à jour dans le service web et si il n'y a aucune mise à jour, je viens de charger les données pour le haut de la RecyclerView il fonctionne très bien lorsque je n'ai pas fait défiler la RecyclerView mais quand je scroll et le Handler est appelé(comme elle est appelée une fois toutes les 5 secondes), puis pendant la mise à jour de la RecyclerView sur le haut de l'application se bloque.

La mise à jour de la fonction en haut:

public void addOnTop(ArrayList<ItemPOJO> topItemList) {
    for (int i = topItemList.size() - 1; i >= 0; i--) {
        itemList.add(0, topItemList.get(i));
    }
    notifyItemRangeInserted(0, topItemList.size());
    notifyDataSetChanged();
}

C'est le journal des Erreurs:

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{419b8760 position=5 id=-1, oldPos=-1, pLpos:-1 no parent}
at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:4214)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4345)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4326)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1955)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1364)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1327)
at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1155)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1012)
at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1363)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2227)
at android.view.View.dispatchTouchEvent(View.java:7190)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2274)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2009)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2280)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2023)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1931)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1385)
at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1879)
at android.view.View.dispatchPointerEvent(View.java:7370)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3182)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3127)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4164)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4143)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4235)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:163)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4214)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4254)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:523)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreog

P. S.: com.android.support:recyclerview-v7:22.2.1 est utilisé

source d'informationauteur Vishwajit Palankar