Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上显示多个实例的Xamarin WebView_Android_Webview_Xamarin_Xamarin.forms_Xamarin.forms.labs - Fatal编程技术网

Android上显示多个实例的Xamarin WebView

Android上显示多个实例的Xamarin WebView,android,webview,xamarin,xamarin.forms,xamarin.forms.labs,Android,Webview,Xamarin,Xamarin.forms,Xamarin.forms.labs,我使用Xamarin.Forms创建了一个混合应用程序。它使用多个网络视图(XLabs HybridWebView)。我在iOS上使用相同的应用程序,效果很好,而在Android上则逐渐变慢。当我做一个chrome://inspect 在设备上,它显示了同一页面的多个网络视图,看起来更像是隐藏的网络视图仍在内存中,并且正在减慢应用程序的速度 如何销毁Android上隐藏的WebView实例 下面是一个屏幕截图chrome://inspect 在应用程序上: 通常,您应该: 将WebView实例

我使用Xamarin.Forms创建了一个混合应用程序。它使用多个网络视图(XLabs HybridWebView)。我在iOS上使用相同的应用程序,效果很好,而在Android上则逐渐变慢。当我做一个chrome://inspect 在设备上,它显示了同一页面的多个网络视图,看起来更像是隐藏的网络视图仍在内存中,并且正在减慢应用程序的速度

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

下面是一个屏幕截图chrome://inspect 在应用程序上:

通常,您应该:

  • 将WebView实例设置为null
  • (可选)使用
    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);
}

它应该能解决你的问题

您是否在ListView中使用它们?您是否可以尝试NuGet的最新预发布版本,看看是否存在相同的问题?引用中的更改可能会解决此问题。如果这不能解决问题,请将其提交给GitHub issues:如果信息有用,请将其标记为正确答案。谢谢