我正在开发一个包含 Web 视图的应用程序。在应用程序期间的特定时间,它会调用 Webview loadUrl。
有时调用将直接来自 UI 线程上的事件,而有时它来自后台工作线程上的事件。当它来自后台线程时,我调用 runOnUIThead() 以确保对 loadURL 的实际调用发生在 UI 线程上。
我遇到的是,当来自 UI 线程时 loadUrl() 工作正常,但是当它来自工作线程时它无法工作(即使对 loadUrl 的实际调用是通过我传递给 runOnUIThread() 的可运行对象发生的)。
设置断点后,我可以看到在这两个实例中 loadUrl() 都在 UI 线程上被调用。然而它在一种情况下有效,但在另一种情况下无效。
我目前正在筛选 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");
不幸的是,它们都不起作用。