我正在开发一个应用程序中的webView,其中当按下按钮时webview加载发生变化的内容(下一个和之前的两个按钮,它们只是更改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文本。
答案 0 :(得分:5)
您是否正确处理了webView导航?请参阅官方文档中的本教程:
https://developer.android.com/guide/webapps/webview.html#HandlingNavigation
如果您只是使用loadData(),那么您可以尝试在清单文件中设置硬件加速,如下所示:
android:hardwareAccelerated="true"
在应用程序级别添加它,即在AndroidManifest.xml文件的标记中添加
在此之后,它实际上取决于您的设备。如果你有一个高端设备,图像将很快呈现,否则他们将花费时间,因为webView使用webkit硬件加速,这取决于你的设备配置。
如果你仍然需要速度,你可以尝试制作一个没有webview的完全原生的应用程序。一切都会像黄油一样光滑。没有webkit,没有HTML和更好的控制。
祝你好运: - )