下面是实现延时执行 *** 作的几种方法:
new Thread() {
@Override
public void run() {
super.run()
Thread.sleep(3000)//休眠3秒
/**
* 要执行的 *** 作
*/
}
}.start()
TimerTask task = new TimerTask() {
@Override
public void run() {
/**
*要执行的 *** 作
*/
}
}
Timer timer = new Timer()
timer.schedule(task, 3000)//3秒后执行TimeTask的run方法
Handler handler = new Handler()
handler.postDelayed(new Runnable() {
@Override
public void run() {
/**
*要执行的 *** 作
*/
}
}, 3000)//3秒后执行Runnable中的run方法
延时 *** 作,可以用下列方案:
方案1:线程阻断
try {
Thread.currentThread().sleep(2000)//阻断2秒
} catch (InterruptedException e) {
e.printStackTrace()
}
方案2:使用Handler的postDelayed延迟 *** 作。
mHandler .postDelayed(mRunnable, 3000)// 在Handler中执行子线程并延迟3s。
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
mHandler.sendEmptyMessage(1)
}
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg)
//3s后执行代码
}
}。
timeTask
timer = new Timer()
TimerTask timerTask = new TimerTask(){
@Override
public void run() {
方法()
}
}
//每隔3秒扫描一次
timer.schedule(timerTask,1000, 3 * 1000)
new Handler().postDelayed((new Runnable() {
@Override
public void run() { 方法()}}), 1000)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)