延迟执行可以通过以下操作实现,按照推荐的顺序列出来
一、
new Handler().postDelayed(new Runnable(){
public void run() {
//execute the task
}
}, delay);
二、mHandler.sendEmptyMessageDelayed(WIFI_GPS_STATE_ON, 4 * 1000);
三、利用定时器
TimerTask task = new TimerTask(){
public void run(){
//execute the task
}
};
Timer timer = new Timer();
timer.schedule(task, delay);
四、开启新线程
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage(); //告诉主线程执行任务
}
}).start
五、利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。
还有一种可以利用时间差来控制
long time = System.currentTimeMillis();
time = 800 - (System.currentTimeMillis() - time);
if(time > 0){
if(time > 800){
time = 800;
}
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}
if(time > 0){
if(time > 800){
time = 800;
}
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}