是否可以分离WebView的UI和HTTP线程?

Bil*_*Ape 12 android httpconnection android-networking android-webview android-asynctask

由于各种原因,我需要runOnUiThread()实际的WebView实例化和初始化.

这意味着它的底层HTTP连接也是在UI线程上进行的?

如果这是真的,是否可以将WebView的UI thead与HTTP连接线程分开?

如果有可能,实现这一目标的正确方法是什么?

Nat*_*ate 13

我觉得它难以相信的Android将在UI线程上运行远程HTTP请求,假设你开始通过请求WebView.loadUrl().这将导致糟糕的用户体验.

很快,我在调试器中运行了一个基本的Android应用程序WebView,并在调试器中停止了.这是我看到的:

在此输入图像描述

如果WebViewCoreThread,WebViewWorkerThread或者http0- http3不处理WebView对象的网络连接,那么

  1. 他们的名字非常糟糕
  2. Android的构建非常糟糕

此外,如果您通过堆栈溢出的最高信誉用户之一查看此答案,则loadUrl()是异步的.调试器中的快速步骤告诉我,loadUrl()在UI线程(也称为main)上调用的方法完成得太快,无法在UI线程上同步处理连接.(我在调用之前和之后设置了一个断点loadUrl(),我知道这个URL不能很快提供).

所以,我的回答是你已经完成了......他们已经分开了!(是的!)