Android WebView.loadUrl(...) を同期的に動作させようとした人はいますか?
私のシナリオは次のとおりです。JavaScriptを実行したいのですが、JavaScriptが実行されるまで、JavaScriptを実行するWebViewを初期化したくありません。JavaScript が正常に実行されるためには、コール スタックが準備されている必要があります。
javascript メソッドをロードする html ページをロードするには、loadUrl を呼び出す必要があります。問題は、loadUrl が呼び出されてすぐに返され、プロセス内のコール スタックが破棄されることです。次に、WebViewClient::onPageFinished(...) が後で呼び出され、WebView の準備ができてスクリプトを実行できることを通知します。しかし、私の呼び出しスタックがなくなったので、今では遅すぎます。
loadUrl に onPageFinished を待機させたいのですが、問題は、loadUrl が呼び出されたのと同じスレッドで onPageFinished が呼び出されることです (loadUrl は別のスレッドで発生します)。そのため、loadURL を呼び出した後に待機するとスレッドがブロックされ、onPageFinished が呼び出されることはありません。
Android/Java には、スレッドが待機することを許可するが、そのスレッドへの通知を受信できるようにスレッドのメッセージ ループを実行し続けるパターンがありますか?