我正在开发一个包含Web视图的应用程序。在应用程序的某些时刻,它会调用Webview loadUrl。
有时,该调用直接来自UI线程上的事件,而其他时候则来自后台工作线程上的事件。当它起源于后台线程时,我会调用runOnUIThead(),以确保实际调用loadURL发生在UI线程上。
我所经历的是,当起源于UI线程时,loadUrl()运行良好,但是从工作线程时它无法正常工作(尽管我通过传递到runOnUIThread()中的可运行对象来实际调用loadUrl())。
通过设置断点,我可以看到,在两种情况下,loadUrl()都被调用在UI线程上。但它在一种情况下可以正常工作而在另一种情况下无法正常工作。
目前,我正在查看Android Webview源代码,以查明为什么有时它能够正常工作,而有时不能。如果任何人能够解决这个问题,将不胜感激。
--- 更新 ---
我已经尝试了这篇文章中的一些建议:WebView loadUrl works only once
主要是在调用loadUrl之前执行以下操作:
webView.clearCache(true);
webView.loadUrl("Url");
并且:
webView.clearCache(true);
webView.clearView();
webView.reload();
webView.loadUrl("about:blank");
webView.loadUrl("Url");
很遗憾,它们都不起作用。