一、开启新线程
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage(); //告诉主线程执行任务
}
}).start
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage();----告诉主线程执行任务
}
}).start
二、利用定时器
TimerTask task = new TimerTask(){
public void run(){
//execute the task
}
};
Timer timer = new Timer();
timer.schedule(task, delay);
三、handler + postDelayed
new Handler().postDelayed(new Runnable(){
public void run() {
//execute the task
}
}, delay);
四、利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。
五、有,但不能在主进程(process)上执行。只可以在线程(thread)上使用。那是Thread.sleep(int delay);delay是毫秒数。
六、
可以使用下面这个
android.os.SystemClock.sleep(10000); //sleep 10s
不过强烈建议不要在主线程做任何耗时的操作。
一般是通过循环调用Handler.postDelayed方法定时启动子线程,
我觉得这样消耗资源应该要少一些。
并且可以精确的定时,不用担心子线程的操作引起的偏差。
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage(); //告诉主线程执行任务
}
}).start
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage();----告诉主线程执行任务
}
}).start
二、利用定时器
TimerTask task = new TimerTask(){
public void run(){
//execute the task
}
};
Timer timer = new Timer();
timer.schedule(task, delay);
三、handler + postDelayed
new Handler().postDelayed(new Runnable(){
public void run() {
//execute the task
}
}, delay);
四、利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。
五、有,但不能在主进程(process)上执行。只可以在线程(thread)上使用。那是Thread.sleep(int delay);delay是毫秒数。
六、
可以使用下面这个
android.os.SystemClock.sleep(10000); //sleep 10s
不过强烈建议不要在主线程做任何耗时的操作。
一般是通过循环调用Handler.postDelayed方法定时启动子线程,
我觉得这样消耗资源应该要少一些。
并且可以精确的定时,不用担心子线程的操作引起的偏差。