小编C.A*_*lan的帖子

LeakCanary发现Android WebView内存泄漏

我一直在使用的工具leakcanary被发现在我的应用程序的内存泄漏.看来我的WebViewActivity每次都会泄漏.

我创建了一个简单的应用程序来测试泄漏.我在xml布局文件中使用WebView启动一个Activity,并使用活动上下文进行膨胀.Js off.一切都默认期望一个简单的webViewClient在WebView中保持重定向.它每次泄漏.

我做了大量的研究,防止这种情况的唯一方法是使用另一个进程启动WebViewActivity并在onDestroy中杀死它.但这种方法有其自身的缺点.

每次运行5.0+的设备都会发生泄漏,未检查4.3及以下版本.

泄漏信息粘贴在下面:

在com.example.webviewmemoryleaktest:1.0:1.*com.example.webviewmemoryleaktest.WebViewActivity已泄露:*GC ROOT android.os.ResultReceiver $ MyResultReceiver.this $ 0*引用org.chromium.content.browser.ContentViewCore $ 2 $ 1.this $ 1(匿名类扩展android.os.ResultReceiver)*引用org.chromium.content.browser.ContentViewCore $ 2.this $ 0*引用org.chromium.content.browser.ContentViewCore.mContext*引用com.android.webview.chromium.ResourcesContextWrapperFactory $ WebViewContextWrapper.mBase*leaks com.example.webviewmemoryleaktest .WebViewActivity实例

  • 参考密钥:9a0346cf-6ad9-4b07-9329-a975d8fa3cbe
  • 设备:LGE谷歌Nexus 4 occam
  • Android版本:5.1 API:22
  • 持续时间:watch = 5139ms,gc = 188ms,堆转储= 2822ms,分析= 30918ms

感谢是否有人可以提供帮助.谢谢!

android garbage-collection memory-leaks webview leakcanary

7
推荐指数
1
解决办法
1887
查看次数