我正在尝试在RecyclerView
中显示YouTube视频。一切都很好,但我遇到了问题(我是新手)。在阅读了一些帖子(Post 1,Post 2)之后,我现在已经意识到即使应用程序停止或进入后台,WebView线程也不会停止的问题。
我的问题是处理WebView
中RecyclerView.Adapter
的停顿。我创建了RecyclerView适配器,但我不知道如何阻止WebView
中ViewHolder
中的RecyclerView.Adapter
。
如果有人可以帮助我。
答案 0 :(得分:3)
在RecyclerView.Adapter
中,ViewHolders有生命周期回调。您应该可以覆盖onViewDetachedFromWindow
以停止WebView
。
答案 1 :(得分:3)
非常感谢@cwbowron。为了更清楚,我在这里粘贴了我的代码。我们需要覆盖两个方法,使其按预期工作:
将此适配器创建的视图附加到窗口时,将调用onViewAttachedToWindow()。
当此适配器创建的视图已从其窗口中分离时,将调用onViewDetachedFromWindow()。
这就是我需要的。以下是我的实施:
public class RecyclerAdapterMessage extends RecyclerView.Adapter<RecyclerAdapterMessage.MessagesViewHolder> {
private Context mContext;
private ArrayList<ModelInboxFeed> modelInboxFeedArrayList;
private OnUserProfileClickListener mOnUserProfileClickListener;
public RecyclerAdapterMessage(Activity context, ArrayList<ModelInboxFeed> modelInboxFeedArrayList) {
...
}
/**
* Create new views (invoked by the layout manager)
*/
@Override
public RecyclerAdapterMessage.MessagesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_card_normal, parent, false);
return new MessagesViewHolder(mContext, view);
}
/**
* Replace the contents of a view (invoked by the layout manager)
*/
@Override
public void onBindViewHolder(final RecyclerAdapterMessage.MessagesViewHolder holder, int position) {
...
}
/**
* Return the size of your data set (invoked by the layout manager)
*/
@Override
public int getItemCount() {
return modelInboxFeedArrayList.size();
}
public interface OnUserProfileClickListener {
void onUserProfileClick();
}
public class MessagesViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private WebView mWebView;
...
}
@Override
public void onViewDetachedFromWindow(MessagesViewHolder holder) {
super.onViewDetachedFromWindow(holder);
holder.mWebView.onPause();
}
@Override
public void onViewAttachedToWindow(MessagesViewHolder holder) {
super.onViewAttachedToWindow(holder);
holder.mWebView.onResume();
}
}
希望它可以帮助任何有相同要求的人。
快乐编码.. !!