等待javascript执行以继续java代码

时间:2015-11-13 11:12:34

标签: javascript java android webview pagination

Hy,我有一个阅读器应用程序,它使用Web视图来显示带有分页的html文件,我很难在web视图完成加载后计算页面数量的pageCount。 到目前为止我在onPageFinished函数中的内容我有以下代码:

myWebView.loadUrl("javascript:window.HTMLOUT.calculatePageCount(document.getElementsByTagName('html')[0].scrollWidth);");
            if(myWebView.getDonePageCalc())
            {
                 //do some calculation    
            }

在我的Web视图中,我已经实现了calculatePageCount,在其中我将donePageCalc设置为true。我需要的是代码等到Web视图完成执行javascript指令以计算页数。如果我这样做:

 while(!myWebView.getDonePageCalc())
 {System.out.println("wait");}

程序将在while循环内冻结。

在那里设置一个观察者或任何可能触发事实执行指令的事情? 任何建议将不胜感激,谢谢你。

1 个答案:

答案 0 :(得分:0)

如果你知道等待的开除时间,你可以使用,

try {
    Thread.sleep(1000); // In millisecond                
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}

否则你可以尝试,

while(true){
   if(myWebView.getDonePageCalc()){
       //do your calculation
       break;
   }
}