WebView在android中加载缓慢?

Posted

技术标签:

【中文标题】WebView在android中加载缓慢?【英文标题】:WebView Loads slowly in android? 【发布时间】:2012-09-26 05:53:46 【问题描述】:

我正在开发应用程序中的 webView,其中 webview 加载的内容在按下按钮时会发生变化(两个按钮 next 和 previous ,它们只是更改 webview 中的内容)。但是按3 -4次后它开始挂起,logcat上没有打印任何内容,按钮保持按下15-20秒,然后加载下一个数据。

我已经使用这些来清除 webview.db 和缓存:-

context.this.deleteDatabase("webview.db");
context.this.deleteDatabase("webviewCache.db");

webView.getSettings().setRenderPriority(RenderPriority.HIGH);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

但它仍然挂起。我怎样才能加快速度?请帮忙?

更新:

   public void setWebView(String QuestionParent,String QuestionNumber)
    


        WebSettings webSettings = questionWeb.getSettings();

        webSettings.setDefaultFontSize(24);

        questionWeb.getSettings().setRenderPriority(RenderPriority.HIGH);
        questionWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);


        questionWeb.loadDataWithBaseURL("",integralParse.htmlParse(questionCode,"mnt/sdcard/faData/"+QuestionParent+"/"+QuestionNumber),"text/html","UTF-8","");
    

我在按下按钮时使用此方法。 integralParse.htmlParse() 方法返回一个 html 文本。

【问题讨论】:

【参考方案1】:

您是否正确处理 webView 导航?请参阅官方文档上的本教程:

https://developer.android.com/guide/webapps/webview.html#HandlingNavigation

如果您只是使用 loadData(),那么您可以尝试在清单文件中设置硬件加速,如下所示:

android:hardwareAccelerated="true"

在应用程序级别添加它,即在您的 AndroidManifest.xml 文件的标签中

在这一点之后,它真的取决于你的设备。如果您有高端设备,图像将快速渲染,否则将需要时间,因为 webView 使用 webkit 硬件加速,这取决于您的设备配置。

如果您仍然需要速度,您可以尝试制作一个没有 webview 的完全原生应用程序。一切都会像黄油一样光滑。没有 webkit,没有 html 和更好的控制。

祝你好运:-)

【讨论】:

我没有使用这样的导航.. 我只是使用 loadData() 方法,数据来自数据库表 在您使用 loadData() 的地方发布您的代码,从 db 获取数据并处理按钮的点击 你用integralParse.htmlParse(..)做什么?请详细解释为什么需要它。 让我们continue this discussion in chat 你好 webview 加载非常快..但是背景图片丢失了.. wat to do

以上是关于WebView在android中加载缓慢?的主要内容,如果未能解决你的问题,请参考以下文章

Picasso 图片在 android 中加载缓慢,为啥?

Android - 在 webview 中加载 PDF

取消在 Android 上的 WebView 中加载

Android Webview 不会在 webview 中加载我的 FPDF 链接

如何使用 Android Kotlin 在 WebView 中加载 URL?

Android:如何在 WebView 中加载 html 字符串?