さまざまな理由から、WebViewの実際のインスタンス化と初期化をrunOnUiThread()する必要があります。
つまり、基になる HTTP 接続も UI スレッドで行われるということですか?
これが本当なら、WebView の UI ヘッドを HTTP 接続スレッドから分離することは可能ですか?
可能であれば、これを達成する適切な方法は何ですか?
さまざまな理由から、WebViewの実際のインスタンス化と初期化をrunOnUiThread()する必要があります。
つまり、基になる HTTP 接続も UI スレッドで行われるということですか?
これが本当なら、WebView の UI ヘッドを HTTP 接続スレッドから分離することは可能ですか?
可能であれば、これを達成する適切な方法は何ですか?
Android がリモート HTTP リクエストを UI スレッドで実行するとは信じがたいと思いますWebView.loadUrl()
。これはひどいユーザーエクスペリエンスになります。
すぐに、Android アプリをデバッガーで実行し、basic を使用しWebView
て、デバッガーで停止しました。ここに私が見るものがあります:
、、または-がオブジェクトのネットワーク接続を処理していない場合WebViewCoreThread
、WebViewWorkerThread
http0
http3
WebView
また、スタック オーバーフローの最も評判の高いユーザーの 1 人によるこの回答を見ると、loadUrl() は非同期です。デバッガーで簡単な手順を実行するloadUrl()
と、UI スレッド (別名main
) で呼び出される の完了が速すぎて、接続を UI スレッドで同期的に処理できないことがわかります。loadUrl()
(非常に迅速に提供されないことがわかっているURLを使用して、呼び出しの前後にブレークポイントを置きます)。
だから、私の答えはあなたが終わったということです...彼らはすでに分離しています!(うん!)