Handler (android.os.Handler) {bccf21b} sending message to a Handler on a dead thread
Видео в RecyclerView, испольсую ExoVideoView implementation 'com.devbrackets.android:exomedia:4.3.0'
W/MessageQueue: Handler (android.os.Handler) {bccf21b} sending message to a Handler on a dead thread
java.lang.IllegalStateException: Handler (android.os.Handler) {bccf21b} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:561)
at android.os.Handler.enqueueMessage(Handler.java:754)
at android.os.Handler.sendMessageAtTime(Handler.java:703)
at android.os.Handler.sendMessageDelayed(Handler.java:673)
at android.os.Handler.sendMessage(Handler.java:611)
at android.os.Message.sendToTarget(Message.java:474)
at com.google.android.exoplayer2.ExoPlayerImplInternal.seekTo(ExoPlayerImplInternal.java:196)
at com.google.android.exoplayer2.ExoPlayerImpl.seekTo(ExoPlayerImpl.java:326)
at com.google.android.exoplayer2.BasePlayer.seekTo(BasePlayer.java:42)
at com.devbrackets.android.exomedia.core.exoplayer.ExoMediaPlayer.seekTo(ExoMediaPlayer.java:580)
at com.devbrackets.android.exomedia.core.exoplayer.ExoMediaPlayer.seekTo(ExoMediaPlayer.java:538)
at com.devbrackets.android.exomedia.core.video.exo.ExoVideoDelegate.setVideoUri(ExoVideoDelegate.java:68)
at com.devbrackets.android.exomedia.core.video.exo.ExoVideoDelegate.setVideoUri(ExoVideoDelegate.java:62)
at com.devbrackets.android.exomedia.core.video.exo.ExoSurfaceVideoView.setVideoUri(ExoSurfaceVideoView.java:73)
at com.devbrackets.android.exomedia.ui.widget.VideoView.setVideoURI(VideoView.java:297)
at com.frusty.cooking.adapters.FastCookVideoAdapter.onViewDetachedFromWindow(FastCookVideoAdapter.java:99)
at com.frusty.cooking.adapters.FastCookVideoAdapter.onViewDetachedFromWindow(FastCookVideoAdapter.java:32)
at androidx.recyclerview.widget.RecyclerView.dispatchChildDetached(RecyclerView.java:7541)
at androidx.recyclerview.widget.RecyclerView$5.removeViewAt(RecyclerView.java:872)
at androidx.recyclerview.widget.ChildHelper.removeViewAt(ChildHelper.java:168)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeViewAt(RecyclerView.java:8639)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.removeAndRecycleViewAt(RecyclerView.java:8912)
at androidx.recyclerview.widget.LinearLayoutManager.recycleChildren(LinearLayoutManager.java:1433)
at androidx.recyclerview.widget.LinearLayoutManager.recycleViewsFromEnd(LinearLayoutManager.java:1527)
at androidx.recyclerview.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1552)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1578)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1391)
at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1128)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:1841)
at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5302)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1031)
at android.view.Choreographer.doCallbacks(Choreographer.java:854)
at android.view.Choreographer.doFrame(Choreographer.java:785)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1016)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
В класе:
@Override
public void onViewAttachedToWindow(@NonNull Holder holder) {
super.onViewAttachedToWindow(holder);
holder.videoView.start();
Log.d("onViewe", "Attached: "+holder.getAdapterPosition());
}
@Override
public void onViewDetachedFromWindow(@NonNull Holder holder) {
super.onViewDetachedFromWindow(holder);
holder.videoView.stopPlayback();
Log.d("onViewe", "Detached: "+holder.getAdapterPosition());
}