Java - 'continue' 特定超时时间后循环迭代

标签 java android for-loop

有没有办法在一定的超时时间后退出('continue;')循环迭代?

我有一个循环,该循环将从网络收集数据,然后使用这些数据进行计算。

数据在大约 1 到 2 秒后变得过时,因此如果循环迭代花费的时间超过 1 秒,那么我希望它“继续”到下一次迭代。

有时收集数据可能需要时间,但有时计算时间可能超过 1 秒,因此 HTTP 超时无法满足我的需要。 此外,在进行计算时,我正在使用的线程被阻塞,因此我无法检查 System.currentTimeMillis();

有没有办法使用另一个线程来检查时间并强制继续原来的for循环。

最佳答案

使用 AsyncTask 进行阻塞计算,并有一个属于主线程的 Handler

在您的 onPreExecute() 中,您可以 Handler.postDelayed() 调用 AsyncTask.cancel(true)< 的 Runnable/。在您的 onPostExecute() 中,您可以取消上述 Runnable,因为如果计算及时完成,则不需要它。工作完成。

关于Java - 'continue' 特定超时时间后循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4526320/

相关文章:

java - 刷新 token rxjava+retrofir2

Android NDK,并将功能放在 Activity 类之外

java - 设置新内容 View 时应用程序崩溃

ios - 通过使用带有 ids 的排序 NSArray 来加速 for 循环

PEM 文件中的 java.security.InvalidKeyException : invalid key format while generating public, 私钥

Java Swing布局问题与代码优化

python - While 循环列表?

java - 似乎无法正确反转循环输出

java - 如何在 JavaFX Cell 中绑定(bind)数据

java - 将简单的 html 渲染到 Canvas 上