2

我正在开发应用程序中的 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 文本。

4

1 回答 1

5

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

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

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

android:hardwareAccelerated="true"

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

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

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

祝你好运 :-)

于 2012-10-05T05:39:03.667 回答