由于各种原因,我需要runOnUiThread()的实际实例化和初始化WebView。
这意味着它的底层 HTTP 连接也是在 UI 线程上建立的?
如果这是真的,是否可以将 WebView 的 UI 标题与 HTTP 连接线程分开?
如果可能,实现此目的的正确方法是什么?
由于各种原因,我需要runOnUiThread()的实际实例化和初始化WebView。
这意味着它的底层 HTTP 连接也是在 UI 线程上建立的?
如果这是真的,是否可以将 WebView 的 UI 标题与 HTTP 连接线程分开?
如果可能,实现此目的的正确方法是什么?
我很难相信 Android 会在 UI 线程上运行远程 HTTP 请求,假设您通过WebView.loadUrl()
. 这将导致糟糕的用户体验。
很快,我在调试器中运行了一个带有 basic 的 Android 应用程序,WebView
然后在调试器中停止了。这是我看到的:
如果WebViewCoreThread
、WebViewWorkerThread
或http0
-http3
不处理WebView
对象的网络连接,则
此外,如果您通过堆栈溢出的最高声誉用户之一查看此答案,则loadUrl() 是 asynchronous。调试器中的快速步骤告诉我,loadUrl()
在 UI 线程(又名)上调用的main
完成速度太快,无法在 UI 线程上同步处理连接。(我在调用之前和之后设置了一个断点,并且loadUrl()
我知道它不会很快提供服务)。
所以,我的回答是你已经完成了......他们已经分开了!(是的!)