一、前言:
在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是一个引导页面,过了两三秒后,会自动跳转到主界面。这就是一个延时操作。
下面是实现延时执行操作的几种方法:
1. 使用线程的休眠实现延时操作(sleep会阻塞线程)
new Thread() {
@Override
public void run() {
super.run();
Thread.sleep(3000);//休眠3秒
/**
* 要执行的操作
*/
}
}.start();
2. 使用TimerTask实现延时操作
TimerTask task = new TimerTask() {
@Override
public void run() {
/**
*要执行的操作
*/
}
};
Timer timer = new Timer();
timer.schedule(task, 3000);//3秒后执行TimeTask的run方法
3. 使用Handler的postDelayed方法实现延时操作(postDelayed不会阻塞线程)
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
/**
*要执行的操作
*/
}
}, 3000);//3秒后执行Runna
测试:
int i = 0;
long delayMillis = 900000;
while(i<13) {
hanlder.postDelayed(runnable, delayMillis*i);
i++;
}
此处postDelay不会阻塞线程,这里的意思是等待delayMillisi毫秒以后再将线程加入队列,但是程序后面代码依然会立即继续执行,而不是等待delayMillisi毫秒后再执行。
4. view的延时(任何view都可以延时,postDelayed不会阻塞线程)
tvValue.postDelayed(new Runnable() {
@Override
public void run() {
//执行操作
}
},3000);
网友评论