Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android:在recyclerview中暂停/停止webview_Android_Webview - Fatal编程技术网

android:在recyclerview中暂停/停止webview

android:在recyclerview中暂停/停止webview,android,webview,Android,Webview,我正在尝试在RecyclerView中显示youtube视频。一切都很好,但我遇到了这个问题(我是新手)。在阅读了一些帖子(,)之后,我现在意识到了一个问题,即即使应用程序在后台停止或运行,WebView线程也不会停止 我的问题是处理RecyclerView.Adapter中的WebView暂停。我已经创建了RecyclerView适配器,但我不知道如何在ViewHolder中停止WebView中的RecyclerView.adapter 如果有人能帮我的话。在RecyclerView.Adap

我正在尝试在
RecyclerView
中显示youtube视频。一切都很好,但我遇到了这个问题(我是新手)。在阅读了一些帖子(,)之后,我现在意识到了一个问题,即即使应用程序在后台停止或运行,WebView线程也不会停止

我的问题是处理
RecyclerView.Adapter
中的
WebView
暂停。我已经创建了RecyclerView适配器,但我不知道如何在
ViewHolder
中停止
WebView
中的
RecyclerView.adapter


如果有人能帮我的话。

RecyclerView.Adapter
中,有针对视图持有者的生命周期回调。多亏了@cwbowron,您应该能够在视图从窗口分离时覆盖
以停止
WebView

。为了更清楚,我将代码粘贴在这里。我们需要覆盖两种方法以使其按预期工作:

当此适配器创建的视图已附加到窗口时,将调用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();
    }
}
公共类RecyclerAdapterMessage扩展了RecyclerView.Adapter{ 私有上下文; 私有arraylistmodelinboxfeedarraylist; 专用OnUserProfileClickListener mOnUserProfileClickListener; public RecyclerAdapterMessage(活动上下文,ArrayList modelInboxFeedArrayList){ ... } /** *创建新视图(由布局管理器调用) */ @凌驾 public RecyclerAdapterMessage.MessagesViewHolder onCreateViewHolder(视图组父级,int-viewType){ View=LayoutFlater.from(parent.getContext())。充气(R.layout.item\u card\u normal,parent,false); 返回新消息viewholder(mContext,view); } /** *替换视图的内容(由布局管理器调用) */ @凌驾 BindViewHolder上的public void(最终RecyclerAdapterMessage.MessagesViewHolder,int位置){ ... } /** *返回数据集的大小(由布局管理器调用) */ @凌驾 public int getItemCount(){ 返回modelInboxFeedArrayList.size(); } 公共接口OnUserProfileClickListener{ void onUserProfileClick(); } 公共类MessagesViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{ 私有网络视图; ... } @凌驾 从窗口分离的视图上的公共无效(消息查看文件夹支架){ super.onview从窗口分离(支架); holder.mWebView.onPause(); } @凌驾 视图上的公共无效附加文档(消息查看文件夹持有者){ super.onViewAttachedToWindow(持有人); holder.mWebView.onResume(); } }
希望它能帮助有同样需求的人


快乐的编码

好的,先生。。我在上面。。我会尝试和更新你。谢谢……)天啊。。它工作起来很有魅力。。谢谢你,先生。。你救了我一天。。昨天,在过去的4-5个小时里,我一直在寻找并试图摆脱这个问题。。。但是当我尝试这个的时候,它就像。。哇……)