标签: webviewrunonuithread

来自工作线程的Android Webview loadUrl不起作用

我正在开发一个包含网络视图的应用程序。在应用程序中的某些时间,它会调用Webview loadUrl。

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

我正在体验的是,当loadUrl()源自UI线程时,它工作正常,但是当它来自工作线程时,它却无法工作(即使对loadUrl的实际调用是通过我传递给runOnUIThread()的可运行的)进行的。

设置断点后,我可以看到在两种情况下都在UI线程上调用了loadUrl()。但是它在一种情况下有效,而在另一种情况下无效。

我目前正在筛选Android Webview源代码,以查看是否可以追踪为何有时起作用而有时不起作用的原因。如果有人可以对此事发表任何意见,将不胜感激。

-更新-

我从这里的这篇文章中尝试了一些建议:WebView loadUrl仅工作一次

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

webView.clearCache(true);
webView.loadUrl("Url");
Run Code Online (Sandbox Code Playgroud)

和:

webView.clearCache(true);
webView.clearView();
webView.reload();
webView.loadUrl("about:blank");
webView.loadUrl("Url");
Run Code Online (Sandbox Code Playgroud)

不幸的是,它们都不起作用。

java multithreading android webviewrunonuithread

5
推荐指数
1
解决办法
3606
查看次数