Android / java – 如何循环等待执行操作

我尝试做显示元素的应用程序。 隐藏before元素时,每个元素都应该开始显示。 每个元素显示2秒。 码:

public void gameStart() { do { data = random.nextInt(6) + 1; if (data == 1) { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element1.setVisibility(View.VISIBLE); } @Override public void onFinish() { element1.setVisibility(View.GONE); } }.start(); { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element2.setVisibility(View.VISIBLE); } @Override public void onFinish() { element2.setVisibility(View.GONE); } }.start(); } else if (data == 3) { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element3.setVisibility(View.VISIBLE); } @Override public void onFinish() { element3.setVisibility(View.GONE); } }.start(); } else if (data == 4) { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element4.setVisibility(View.VISIBLE); } @Override public void onFinish() { element4.setVisibility(View.GONE); } }.start(); } else if (data == 5) { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element5.setVisibility(View.VISIBLE); } @Override public void onFinish() { element5.setVisibility(View.GONE); } }.start(); } else if (data == 6) { CountDownTimer cdt = new CountDownTimer(2000, 1000) { @Override public void onTick(long millisUntilFinished) { element6.setVisibility(View.VISIBLE); } @Override public void onFinish() { element6.setVisibility(View.GONE); } }.start(); } id = id + 1; text.setText("cos " + id); } while (id < 3); 

所有元素都在同一时间显示。 我尝试添加

 Thread.sleep(2500); 

但是这在窗口中停止了操作。 我尝试在代码后添加此代码:

 Timer timer = new Timer(); timer.schedule( new TimerTask() { public void run() { } }, 0, 60*1000); 

但循环不停留。 我尝试使用notify()wait() ,但它也不起作用。

不建议我在onFinish()做下一个动作,因为这必须重复很多。 有人有另一个想法吗?

编辑我也使用Handler但它不起作用

我建议你不要在主线程中实现这个代码。 创建一个异步任务,它隐藏一个按钮并在postExequte调用本身。