0

我目前正在编写游戏,并希望应用程序在继续之前等待一段时间。我已经尝试过睡眠功能,但它并没有按照我的意愿去做。我有一个十个循环,我希望其中一个文本框的值更改十次,每个文本框之间有几秒钟的间隔。到目前为止我有这个

for(int coolRan = 0; coolRan < 11; coolRan = coolRan + 1) {          
    Random generator = new Random();
    int RanNumGen = generator.nextInt(50) + 1;                          
    String RanNum = Integer.toString(RanNumGen);                
    higherTxt.setText(RanNum);
}

在此之后我希望它暂停几秒钟,然后再次执行循环中的操作,所以在伪代码中它看起来像这样:

十人循环

生成最大值为 50 的随机数

设置一个字符串等于随机数

将 TextView 设置为等于随机数

等待几秒钟

再次执行操作

4

2 回答 2

1

如果按以下方式使用,睡眠方法应该可以正常工作。

Thread.sleep();

参数是以毫秒为单位的时间。

例如:

Thread.sleep(5000);
//This pauses or "sleeps" for 5 seconds
于 2013-06-18T22:17:47.343 回答
1

Thread.sleep(long millis)使当前执行的Thread睡眠时间为long毫秒(1/1000 秒)。

在 Android 中,在 UI 线程中休眠是非常非常糟糕的做法,例如可能导致“应用程序无响应”(ANR)错误。要绕过这个,你应该从另一个线程运行它。做这件事有很多种方法:

  1. 呼叫View.postDelayed(Runnable action, long delayMillis)- 这将为您延迟,因此您无需呼叫sleep()
  2. 使任务执行AsyncTask
  3. 创建一个新的Thread(或)Java 样式,然后将它与另一个(是的.. 不推荐)一起Runnable发布到 UI 线程RunnableActivity.runOnUiThread(Runnable)

另请注意,您的 for 循环将运行 11 次,从 0 到 10(包括两者) - 而不是 10 次。

于 2013-06-18T22:25:00.623 回答