Android上包含webview的PageViewer内存泄漏

Android上包含webview的PageViewer内存泄漏,android,memory-leaks,webview,Android,Memory Leaks,Webview,我在我的应用程序中使用ViewPager。每个页面都包含一个WebView和一些ImageView。我知道WebView是最关键的视图 当我旋转屏幕时,活动不会被破坏。 在destroyItem()中,我使用以下代码: @Override public void destroyItem(View collection, int position, Object view) { LinearLayout layout = (LinearLayout)((LimitScrollView)((

我在我的应用程序中使用
ViewPager
。每个页面都包含一个
WebView
和一些
ImageView
。我知道
WebView
是最关键的视图

当我旋转屏幕时,
活动
不会被破坏。 在
destroyItem()
中,我使用以下代码:

@Override
public void destroyItem(View collection, int position, Object view) {
    LinearLayout layout = (LinearLayout)((LimitScrollView)((RelativeLayout)view).getChildAt(0)).getChildAt(0);
    for (int i = 0; i < layout.getChildCount(); i++) {
        View locView = layout.getChildAt(i);
        if (locView.getTag() !=null && ((String)(locView.getTag())).equals(ADAPTER_TAG_WEBVIEW)){
            FrameLayout webViewFrame = (FrameLayout)locView;
            WebViewSub webView = (WebViewSub ) webViewFrame .getChildAt(0);
            webView.destroy();
            webView = null;
            webViewFrame.removeAllViews();
        }
    }
    ((ViewPager) collection).removeView((View) view);
}
@覆盖
公共项(视图集合、int位置、对象视图){
LinearLayout布局=(LinearLayout)((LimitScrollView)((RelativeLayout)视图).getChildAt(0)).getChildAt(0);
对于(int i=0;i
我试图从
活动
中的
ondestory()
方法中删除所有
WebView
,但在旋转之后,我在垫子中有两个
活动
实例。
如果我不使用
WebView
我在轮换后有一个活动。

MAT显示您在第二个活动上保留了什么?第二个(垃圾)活动包含ImageView、frameLayout和webkit回调。我不知道如何删除webkit回调。这就是问题所在?MAT向您展示了什么在坚持第二项活动?请注意,我没有问第二个活动包含什么。在“传入引用”中,我看到了这些UI元素。如果不在PageViewer中使用webView,则不会出现此问题。我对它进行了测试。要确定MAT中的对象上有什么,可以使用“GC根路径”。您可能希望在Android上使用MAT观看谷歌I|O视频: