【发布时间】:2014-01-09 13:31:13
【问题描述】:
我正在开发一个包含 Web 视图的应用程序。在应用程序期间的特定时间,它会调用 Webview loadUrl。
有时调用将直接来自 UI 线程上的事件,而有时它来自后台工作线程上的事件。当它来自后台线程时,我会调用 runOnUIThead() 以确保对 loadURL 的实际调用发生在 UI 线程上。
我遇到的是 loadUrl() 在源自 UI 线程时工作正常,但是当它来自工作线程时它无法工作(即使对 loadUrl 的实际调用是通过我传递给 runOnUIThread( ))。
设置断点后,我可以看到在这两个实例中 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");
不幸的是,它们都不起作用。
【问题讨论】:
标签: java android multithreading webviewrunonuithread