3

我使用 Xamarin.Forms 创建了一个混合应用程序。它使用多个 WebViews (XLabs HybridWebViews)。我在 iOS 上使用相同的应用程序,它运行良好,而在 Android 上它逐渐变慢。当我在设备上执行 chrome://inspect 时,它会显示同一页面的多个 WebView,看起来更像是隐藏的 WebView 仍在内存中并且正在减慢应用程序的速度。

如何销毁 Android 上隐藏的 WebView 实例?

以下是 App 上 chrome://inspect 的截图:

在此处输入图像描述

4

1 回答 1

2

一般来说,你应该:

  • 将您的 WebViews 实例设置为空。
  • (可选)强制垃圾收集GC.Collect();

如果还不够,请制作 WebView 的自定义渲染器并添加以下内容:

protected override void Dispose(bool disposing)
{
    if (disposing && Element != null)
    {
        if (Control != null)
        {
                Control.StopLoading();
                Control.ClearHistory();
                Control.ClearCache(false);
                Control.LoadUrl("about:blank");
                Control.FreeMemory();
                Control.PauseTimers();
        }
    }

    base.Dispose(disposing);
}

它应该可以解决您的问题。

于 2015-08-31T12:18:01.997 回答