有没有人试图让 Android WebView.loadUrl(...) 同步运行?
我的场景是这样的:我想执行一些 javascript,但我不想初始化执行 javascript 的 WebView,直到要执行 javascript 的时间。为了使 javascript 成功执行,需要准备好调用堆栈。
我需要调用 loadUrl 来加载加载 javascript 方法的 html 页面。问题是 loadUrl 被调用然后立即返回,在这个过程中拆除了调用堆栈。然后 WebViewClient::onPageFinished(...) 稍后被调用,表明 WebView 已准备就绪,我可以执行我的脚本。但现在为时已晚,因为我的调用堆栈不见了。
我希望 loadUrl 等待 onPageFinished 但问题是 onPageFinished 在调用 loadUrl 的同一线程中被调用(即使 loadUrl 发生在另一个线程中)。因此,在调用 loadURL 之后等待会阻塞线程并且永远不会调用 onPageFinished。
android/java 中是否有一些模式允许线程等待但线程的消息循环继续执行以便可以接收到该线程的通知?