让应用程序等待几秒钟Java

时间:2013-06-18 22:09:04

标签: java android loops wait

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

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);
}

在重新执行循环操作之前暂停几秒钟之后,我希望它能做什么,所以在Pseudocode中这就是它的样子:

循环为十

生成最大值为50的随机数

将字符串设置为等于随机数

将TextView设置为等于随机数

等待几秒钟

再次执行操作

2 个答案:

答案 0 :(得分:1)

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

Thread.sleep();

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

例如:

Thread.sleep(5000);
//This pauses or "sleeps" for 5 seconds

答案 1 :(得分:1)

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

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

  1. 致电View.postDelayed(Runnable action, long delayMillis) - 这会延迟您,因此您无需拨打sleep()
  2. 制作任务工具AsyncTask
  3. 创建一个新的Thread(或Runnable)Java风格,然后将其发布到另一个Runnable的UI主题(是的......不推荐){{3} }
  4. 另请注意,您的for循环将运行11次,从0到10(包括两者) - 不是10次。