我一直在使用工具leacanary来发现我的应用程序中的内存泄漏。似乎我的 WebViewActivity 每次都泄漏。
我创建了一个简单的应用程序来测试泄漏。我使用 xml 布局文件中的 WebView 启动一个活动/使用活动上下文膨胀。关掉。一切默认都期望一个简单的 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 * 泄漏 com.example.webviewmemoryleaktest .WebViewActivity 实例
- 参考密钥:9a0346cf-6ad9-4b07-9329-a975d8fa3cbe
- 设备:LGE google Nexus 4 occam
- 安卓版本:5.1 API:22
- 持续时间:watch=5139ms, gc=188ms, heap dump=2822ms, analysis=30918ms
感谢是否有人可以提供帮助。谢谢!