【发布时间】:2012-04-05 13:47:51
【问题描述】:
我正在努力寻找 Android 上 TimerTask 函数的文档。 我需要使用 TimerTask 每隔一段时间运行一个线程,但不知道如何去做。 任何建议或示例将不胜感激。
【问题讨论】:
标签: android multithreading timer timertask
我正在努力寻找 Android 上 TimerTask 函数的文档。 我需要使用 TimerTask 每隔一段时间运行一个线程,但不知道如何去做。 任何建议或示例将不胜感激。
【问题讨论】:
标签: android multithreading timer timertask
我已经实现了这样的东西,它工作正常:
private Timer mTimer1;
private TimerTask mTt1;
private Handler mTimerHandler = new Handler();
private void stopTimer(){
if(mTimer1 != null){
mTimer1.cancel();
mTimer1.purge();
}
}
private void startTimer(){
mTimer1 = new Timer();
mTt1 = new TimerTask() {
public void run() {
mTimerHandler.post(new Runnable() {
public void run(){
//TODO
}
});
}
};
mTimer1.schedule(mTt1, 1, 5000);
}
【讨论】:
您使用Timer,当您使用任何schedule 方法安排TimerTask 时,它会自动为您创建一个新线程。
例子:
Timer t = new Timer();
t.schedule(myTimerTask, 1000L);
这会在属于该计时器的线程中创建一个运行myTimerTask 的计时器,每秒一次。
【讨论】:
Timer,在一秒钟后只运行一次线程中的任务。要每秒运行一次任务,请使用此重载的schedule 方法:schedule(TimerTask task, long delay, long period)。例如,timer.schedule(myTimerTask, 1000L, 2000L) 创建一个计时器,该计时器在初始延迟 1 秒后每 2 秒运行一次。这是方法的链接 [link](developer.android.com/reference/java/util/…, long, long))[link]
这是计时器任务的完美示例。
Timer timerObj = new Timer();
TimerTask timerTaskObj = new TimerTask() {
public void run() {
//perform your action here
}
};
timerObj.schedule(timerTaskObj, 0, 15000);
【讨论】: