android - Android 上的 Xamarin WebView 显示多个实例

标签 android webview xamarin xamarin.forms xamarin.forms.labs

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

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

App 上的 chrome://inspect 截图如下:

enter image description here

最佳答案

通常你应该:

  • 将您的 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);
}

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

关于android - Android 上的 Xamarin WebView 显示多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32293559/

相关文章:

android - 使用 setCustomView 的自定义 ActionBar - 是否膨胀?

java - 当我在应用程序浏览器中打开 android webview 中的链接时,如何将关闭按钮放在左上角

c# - RestSharp on Response 不知道如何调用回调

java - OnPostExecute 永远不会被调用

android - 按后退按钮退出应用程序,而不是在 WebView 中向后导航

c# - 'Xamarin.Forms.Label' 和 'System.Reflection.Emit.Label' 之间的模糊引用

android - 如何检测哪个 Activity 导致我的 Activity onPause

android - 从 textview 获取文本 .. 通过以编程方式设置的 id

android - 通过 Uri 滑动加载本地镜像。

javascript - Android,从 WebView 内的 javascript 调用浏览器