(Android)如何在进行另一次循环之前让循环等待很短的时间(如半秒)?
void replaceText(String s)
{
doSomething1();
int x = 0;
while (x < 5)
{
doSomething2();
x++;
}
doSomething3();
}
所以我想要的是我的应用程序&#34;等待&#34;方法doSomething2()之后的短时间。谷歌这次无法帮助我:D
答案 0 :(得分:3)
您可以尝试使用处理程序
// Execute some code after 1 second have passed
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
doSomething2();
}
}, 1000);
答案 1 :(得分:2)
如果你想让你的while循环每1000毫秒执行一次,你可以这样做:
final Handler handler=new Handler();
Runnable r=new Runnable() {
public void run() {
doSomething2();
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
这将每1000毫秒执行一次doSomething2()
。
具体到您的示例,您也可以尝试以下选项:
void replaceText(String s)
{
doSomething1();
int x = 0;
while (x < 5)
{
Thread.sleep(100);
doSomething2();
x++;
}
doSomething3();
}
请注意,由于Thread.sleep会停止线程,因此请确保在非UI线程上运行此函数。一个天真的实现将是:
void replaceText(String s)
{
final String str = s;
Thread thread = new Thread() {
@Override
public void run() {
// user str instead of s;
doSomething1();
int x = 0;
while (x < 5)
{
Thread.sleep(100);
doSomething2();
x++;
}
doSomething3();
}
};
thread.start();
}
答案 2 :(得分:-1)
Thread.sleep(500);
在继续之前,会导致代码休眠半秒钟。请注意,您需要适当地处理InterruptedException
。