看书和上网学习到的几种延时常用方式如下:
1、开启新线程并使用sleep
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage(); //告诉主线程执行任务
}
}).start
缺点:sleep方法会降低系统性能,不推荐使用。
2、利用定时器TimerTask task = new TimerTask(){
public void run(){
//execute the task
}
};
Timer timer = new Timer();
timer.schedule(task, delay);
缺点:使用定时器有时会出现crash。
3、使用Handler + Runnable或者View + Runnable
new Handler().postDelayed(new Runnable(){
public void run() {
//execute the task
}
}, delay);
推荐使用,一般的延时需求用这种方法就可以。每个View都有postDelayed方法,没有View就新建Handler。
4、使用AlarmManager,在特定时刻广播指定Intent