我正在开发一个包含网络视图的应用程序。在应用程序中的某些时间,它会调用Webview loadUrl。
有时,调用将直接来自UI线程上的事件,而有时,调用来自后台工作线程上的事件。当它来自后台线程时,我调用runOnUIThead()以确保对loadURL的实际调用发生在UI线程上。
我正在体验的是,当loadUrl()源自UI线程时,它工作正常,但是当它来自工作线程时,它却无法工作(即使对loadUrl的实际调用是通过我传递给runOnUIThread()的可运行的)进行的。
设置断点后,我可以看到在两种情况下都在UI线程上调用了loadUrl()。但是它在一种情况下有效,而在另一种情况下无效。
我目前正在筛选Android Webview源代码,以查看是否可以追踪为何有时起作用而有时不起作用的原因。如果有人可以对此事发表任何意见,将不胜感激。
-更新-
我从这里的这篇文章中尝试了一些建议:WebView loadUrl仅工作一次
在调用loadUrl之前主要执行以下操作:
webView.clearCache(true); webView.loadUrl("Url");
和:
webView.clearCache(true); webView.clearView(); webView.reload(); webView.loadUrl("about:blank"); webView.loadUrl("Url");
不幸的是,它们都不起作用。