Android(46)WebView 内存泄漏处理

2022-08-09  本文已影响0人  perry_Fan

1. 初始化善用正确的 Context

// 让 WebView 使用 ApplicationContext
val webview = WebView(this.applicationContext)

不要在 xml 中去创建 WebView 标签

2. 释放相关内容

override fun onDestroy() {
    // webview?.loadDataWithBaseURL(null, "", "text/html", "utf-8", null)
    // webview?.clearView()
    webview?.loadUrl("about:blank")
    webview?.parent?.let {
        (it as ViewGroup).removeView(webview)
    }
    webview?.stopLoading()
    webview?.settings?.javaScriptEnabled = false
    webview?.clearHistory()
    webview?.clearCache(true)
    webview?.removeAllViewsInLayout()
    webview?.removeAllViews()
    webview?.webViewClient = null
    webview?.webChromeClient = null
    webview?.destroy()
    webview = null
    super.onDestroy()
}
上一篇 下一篇

猜你喜欢

热点阅读