gpt4 book ai didi

java - 如何在 Android/Java 的 for 循环中等待迭代之间的特定时间?

转载 作者:行者123 更新时间:2023-11-29 05:53:41 24 4
gpt4 key购买 nike

我正在制作一个程序,在同一个 ImageView 中显示图像的不同部分。但它应该在任意两次图像更改之间等待一段时间,大约 500 毫秒。像这样:

for(int i=1; i<=4;i++){
for(int j=1;j<=4;j++){
//code to refresh the image.
// wait for 500 milliseconds before resuming the normal iteration
}
}

我尝试使用以下代码:

for(int i=1; i<=4;i++){
for(int j=1;j<=4;j++){
//code to refresh the image.
Thread.sleep(500);
}
}

但这只显示图像的最后一段,而不是逐段显示。顺便说一句,每个 fragment 都保存为 pic1、pic2、pic3.. 等等(它们都是不同的图像)。我想要一个按以下顺序显示它们的解决方案:

  • 图片1
  • 等待 500 毫秒
  • 图2
  • 等待 500 毫秒
  • 图3
  • ...等等

非常感谢

最佳答案

如果这是在您的 UI 线程循环中,您应该使用 AsyncTaskTimer 来实现您的目标,以避免阻塞 UI。

使用AsyncTask:

class UpdateImages extends AsyncTask<Void, Integer, Boolean> {
@Override
protected void onPreExecute() {
}

@Override
protected void onProgressUpdate(Integer... values) {
// refresh the image here
}

@Override
protected Boolean doInBackground(Void... params) {
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
// NOTE: Cannot call UI methods directly here.
// Call them from onProgressUpdate.
publishProgress(i, j);
try {
Thread.sleep(500);
} catch(InterruptedException) {
return false;
}
}
}
return true;
}

@Override
protected void onPostExecute(Boolean result) {
}
}

然后打电话

new UpdateImages().execute();

当你想开始这个任务。以这种方式使用 AsyncTask 可以避免阻塞您的 UI,并且仍然可以让您按计划做任何您想做的事情。

关于java - 如何在 Android/Java 的 for 循环中等待迭代之间的特定时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com