webview退出声音还在

本文详细介绍了如何在Android应用中正确管理WebView的生命周期,包括在onPause和onResume方法中对WebView状态的保存与恢复,以及在onDestroyView方法中释放资源以避免内存泄漏等问题。此外,还提供了针对WebView点击事件失效问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

boolean isOnPause;

在onPause里边

try {
    if (wb_webview != null) {
        wb_webview.onPause();
        isOnPause = true;
    }

} catch (Exception e) {
    e.printStackTrace();
}
在onResume里边

try {
    if (isOnPause) {
        if (wb_webview != null) {
            wb_webview.onResume();
        }
        isOnPause = false;
    }
} catch (Exception e) {
    e.printStackTrace();
}                                                                                                                                 

/**
 * 该处的处理尤为重要:
 * 应该在内置缩放控件消失以后,再执行mWebView.destroy()
 * 否则报错WindowLeaked
 */
@Override
public void onDestroyView() {

    if (wb_webview != null) {

        wb_webview.clearCache(true);
        wb_webview.clearHistory();

        layout_web.removeAllViews();
        wb_webview.setVisibility(View.GONE);
        wb_webview.removeAllViews();
        wb_webview.destroy();
        wb_webview = null;
    }

    isOnPause = false;

    super.onDestroyView();

}


webview 点击按钮失效的处理办法

wb_webview.requestFocusFromTouch();
wb_webview.requestFocus();
yWs = wb_webview.getSettings();
yWs.setPluginState(WebSettings.PluginState.ON);
yWs.setJavaScriptEnabled(true);
yWs.setSupportZoom(true);
yWs.setBuiltInZoomControls(true);
yWs.setUseWideViewPort(true);
yWs.setLoadWithOverviewMode(true);
yWs.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
yWs.setGeolocationEnabled(true);
yWs.setDomStorageEnabled(true);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值