0
我需要知道如何等待事件被触发才能设置布尔值。我有2类简单的类:MainClass和等待类:等待事件
MainClass()
{
WebView wv; //It's already initialized from the xml and linked in the original code
Wait waiting = new Wait();
if(waiting(wv,URL))
{
wv.loadURL("javascript: ....");
}
}
public Class Wait()
{
Boolean pageLoaded = false;
Wait waiting = this;
public boolean waitForPage(wv,URL)
{
wv.setWebViewClient(new WebViewClient()
{
public void onPageFinished(WebView webView, String url)
{
pageLoaded = true;
synchronized(waiting)
this.nothifyAll();
}
});
wv.loadURL(URL);
synchronized(this) // --> End up in an Endless Loop
this.wait();
if(pageLoaded)
return true;
return false;
}
}
有谁知道为什么它不会同步,终于在一个无限循环结束了?也许我使用错误的事件处理程序? this.wait();
好像是一个While(true)
验证布尔集由NoifyAll()
。请一些想法,我如何等待这些事件,并保持程序流程,直到事件被解雇!
你说得对,我复制的代码不好,我deffinitly拿到了等待实例。 – DientesDeCheto
谢谢,我会看看链接。但是直到我发现它对我和工作是否有用之前,还不能确定你的答案。 – DientesDeCheto
而不是在类实例上同步,在监视器上同步。我不建议使用布尔值,因为它不可变,而是使用布尔值[1]。 –