如何在一段时间内递归调用函数



当我的IOException被捕获时,我想递归调用run((函数,当且仅当该方法的总执行时间为<=10秒。我故意打错了google.com链接,所以IOException总是被抛出和捕获,但它看起来像run((;方法没有被成功地递归调用。我在这里做错了什么?任何帮助都将不胜感激,谢谢!

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {           

public void run() {                                    
Document doc;                                      
try {                                              
doc = Jsoup.connect("http://google.comt/").get();

runOnUiThread( new Runnable()
{
public void run()
{
// do stuff
}
});
} catch (IOException e) {                          
e.printStackTrace(); 
if (System.nanoTime() <= 10000000000L) {    // 10 seconds
run();                                   // RECURSIVE CALL
}
}
}
}.start
}
long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() - startTime <= 10000){
run();
}

如果你想使用纳米秒,你可以尝试如下:

long startTime = System.nanoTime();
while(System.nanoTime() - startTime <= 10000000000){
run();
}

最新更新