Android Timer 停止
;
TimerTask task = new TimerTask() {
@Override
public void run() {
// 执行定时任务的代码
}
};
// 启动计时器,延迟1秒后开始执行任务,每隔2秒执行一次
timer.schedule(task, 1000, 2000);
上述代码创建了一个计时器,并定义了一个任务,该任务将在延迟1秒后开始执行,并且每隔2秒执行一次。
停止计时器
有两种方法可以停止计时器:Timer
类的cancel()
方法和TimerTask
类的cancel()
方法。
使用Timer
的cancel()
方法停止计时器
要停止计时器,我们可以调用Timer
类的cancel()
方法。以下是一个示例:
// 停止计时器
timer.cancel();
上述代码将停止计时器,不再执行后续任务。
使用TimerTask
的cancel()
方法停止计时器
要停止计时器,我们也可以调用TimerTask
类的cancel()
方法。以下是一个示例:
// 停止计时器任务
task.cancel();
上述代码将停止计时器任务,不再执行后续任务。
完整示例
下面是一个完整的示例,演示如何使用计时器并在需要时停止计时器。
import android.os.Handler;
import android.os.Looper;
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
private Timer timer;
private TimerTask task;
public void startTimer() {
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
// 执行定时任务的代码
// 在这里编写需要执行的任务逻辑
}
};
// 启动计时器,延迟1秒后开始执行任务,每隔2秒执行一次
timer.schedule(task, 1000, 2000);
}
public void stopTimer() {
if (timer != null) {
timer.cancel();
timer = null;
}
if (task != null) {
task.cancel();
task = null;
}
}
// 示例用法
public static void main(String[] args) {
TimerExample example = new TimerExample();
example.startTimer();
// 停止计时器
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
example.stopTimer();
}
}, 5000);
}
}
上述代码示例中,我们创建了一个TimerExample
类,该类包含了startTimer()
方法用于启动计时器,stopTimer()
方法用于停止计时器。在main()
方法中,我们启动计时器后,使用Handler
类模拟了一个延迟5秒后停止计时器的操作。
类图
下面是该示例代码的类图:
classDiagram
TimerExample <|-- Timer
TimerExample <|-- TimerTask
TimerExample : +startTimer()
TimerExample : +stopTimer()
TimerExample : -timer
TimerExample : -task
Timer : +cancel()
TimerTask : +cancel()
序列图
下面是启动计时器并停止计时器的序列图示例:
sequenceDiagram
participant TimerExample
participant Timer
participant TimerTask
TimerExample->>+Timer: 创建计时器
TimerExample->>+TimerTask: 创建计时器任务
TimerExample->>Timer: 启