我目前正在编写游戏,并希望该应用程序在继续之前等待一段时间。我已经尝试过睡眠功能,它没有按照我的意愿行事。我有一个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设置为等于随机数
等待几秒钟
再次执行操作
答案 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)错误。要绕过这个,你应该从另一个线程运行它。有几种方法可以做到这一点:
View.postDelayed(Runnable action, long delayMillis)
- 这会延迟您,因此您无需拨打sleep()
。AsyncTask
Thread
(或Runnable
)Java风格,然后将其发布到另一个Runnable
的UI主题(是的......不推荐){{3} } 另请注意,您的for循环将运行11次,从0到10(包括两者) - 不是10次。