我使用 Xamarin.Forms 创建了一个混合应用程序。它使用多个 WebViews (XLabs HybridWebViews)。我在 iOS 上使用相同的应用程序并且运行良好,而在 Android 上它逐渐变慢。当我在设备上执行 chrome://inspect 时,它显示同一页面的多个 WebView,看起来更像是隐藏的 WebView 仍在内存中并且正在减慢应用程序。
如何销毁 Android 上隐藏的 WebView 实例?
App 上的 chrome://inspect 截图如下:
最佳答案
通常你应该:
- 将您的 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/