[英]Delaying a while loop
(Android)如何在执行另一个循环之前让一个循环等待一小段时间(例如半秒)?
void replaceText(String s)
{
doSomething1();
int x = 0;
while (x < 5)
{
doSomething2();
x++;
}
doSomething3();
}
所以我想要的是我的应用程序在doSomething2()方法之后不久就“等待”。 Google这次无法帮助我:D
您可以尝试使用处理程序
// Execute some code after 1 second have passed
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
doSomething2();
}
}, 1000);
例如,如果希望while循环每1000毫秒执行一次,则可以执行以下操作:
final Handler handler=new Handler();
Runnable r=new Runnable() {
public void run() {
doSomething2();
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
这将每1000ms执行一次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();
}
Thread.sleep(500);
在继续之前,这会使您的代码休眠半秒钟。 请注意,然后您将需要适当地处理InterruptedException
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.