我有一个无限for循环,我想在20秒钟后运行此for循环,然后终止循环,所以我该怎么办?

这是我在android中的代码:

do {
    rl += Character.toString((char) in.read());
    // Log.i("RL", "" + rl);
    if (rl.contains("<") && checkStream(rl)) {
        // Log.i("RL INSIDE", "" + rl);
        getNumerAndStatusFromRLString(rl);
        rl = "";
    }
    if (20 SECONDS COMPLETED) {
        Log.i("<rl>", "exit");
        break;
    }
} while (true);


因此,我该怎么做才能检查20秒是否已完成,现在该终止时间了。

任何想法将不胜感激。

最佳答案

我认为选项之一可能是在循环之前有时间,而在循环检查中是否经过了20秒。

如下所示:不确定效率。

   long startTime=   System.currentTimeMillis();
do {

......

     long currTime=  System.currentTimeMillis();
     long elapsedtime = currTime - startTime;
     if(elapsedtime > 20000)
      {
      break;
      }
}

09-28 01:49