我正在开发一个包含Web视图的应用程序.在应用程序中的某些时候,它会调用Webview loadUrl.

有时,调用将直接来自UI线程上的事件,有时则来自后台工作线程上的事件.当它来自后台线程时,我调用runOnUIThead()以确保在UI线程上发生对loadURL的实际调用.

我所经历的是loadUrl()在源自UI线程时工作正常,但是当它来自工作线程时它无法工作(即使实际调用loadUrl是通过runnable发送到runOnUIThread()).

设置了一个断点后,我可以看到在两个实例中都在UI线程上调用了loadUrl().然而,它适用于一个案例但不适用于另一个案例.

我目前正在筛选Android Webview源代码,看看我是否可以找到有时它有效的原因,有时它不会.如果有人能够对此事有任何启示,我们将不胜感激.

—更新—

在调用loadUrl之前主要执行以下操作:

webView.clearCache(true);

webView.loadUrl("Url");

和:

webView.clearCache(true);

webView.clearView();

webView.reload();

webView.loadUrl("about:blank");

webView.loadUrl("Url");

不幸的是他们都没有工作.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐