android - 每次迭代内的Android延迟循环
问题描述
我有以下代码:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
for (int i = 0; i <= 10; i++) {
Log.d("LOG", "i: " + i);
}
}
}, 5000);
我想将 I 从 0 增加到 10,延迟 5 秒,循环内的每个增量。
目前,代码在 5 秒后执行并异步运行 for 循环,而不是在每次交互之间等待 5 秒。此代码大约需要一分钟才能完成。
解决方案
好的,因此在我使用的延迟的情况下在 for 循环中进行迭代,Thread.sleep
但这将导致应用程序变为空白,直到它完成执行 for 循环,因为它在 UI 上运行。为了克服这个问题,我在后台运行 thread.sleep。完整代码如下:
new Thread(new Runnable() {
@Override
public void run() {
try {
for(int i=0;i<10;i++)
{
Thread.sleep(5000);
Log.d("LOG", "i: "+i);
}
} catch (Exception e) {
}
}
}).start();
推荐阅读
- python - 由掩码定义的区域中的阈值分割
- amazon-web-services - CloudFormation CodePipeline 模板无权执行 AssumeRole,为什么?
- powershell - 检查 Powershell 中的扩展模式屏幕(需要帮助 - 将 Autoit 转换为 Powershell v2)
- javascript - 使用打字稿反应选择键的通用类型
- javascript - isLocationOnEdge() 分割路线
- c# - 如何正确创建对 Unity 对象的引用?
- c++ - 如何使用c ++为最小尺寸的窗口制作屏幕截图
- kotlin - Kotlin 中的下划线名称是为什么保留的?
- ruby-on-rails - 创建表单(Simpleform)PG :: NotNullViolation:错误:Rails列中的空值
- sql-server - SQL Server 中具有可重复读取隔离级别的并发读取和更新事务