Java 如何确定计时器任务是否已完成
我有以下代码:Java 如何确定计时器任务是否已完成,java,android,timer,timertask,Java,Android,Timer,Timertask,我有以下代码: Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub } }; timer.schedule(task, 10000);//execute after 10 seconds 我们是否可以确定任务是否已由计时器执行或仍然到期?添
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
timer.schedule(task, 10000);//execute after 10 seconds
我们是否可以确定任务是否已由计时器执行或仍然到期?添加一个简单的变量,如
boolean isTaskCompleted = false;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
// do stuff
isTaskCompleted = true;
}
};
timer.schedule(task, 10000);//execute after 10 seconds
当然
编辑:
如果对扩展该类不满意,可以使用scheduledExecutionTime()方法,如果任务尚未运行,则返回0
我知道这个解决方法。。但这里的问题是,除非扩展TimerTask,否则不能显式调用isDone()。但我想知道TimerTask是否有任何api用于此..谢谢。。但是android doc for scheduledExecutionTime()说:尚未运行的任务返回未定义的值。java没有“undefined”类型,方法声明显示它将返回一个long,因此不能为null。此未定义的值为0。试试看:)这是个好主意!但是当我出于多种目的多次调用同一任务时。但是,我有不同的计时器变量来取消不同的任务。我如何才能找到与特定计时器对应的任务是否正在运行。
class CustomTask extends TimerTask {
protected boolean isDone = false;
public boolean isDone() {return isDone; }
@Override
public void run() {}
}
CustomTask task = new CustomTask() {
@Override
public void run() {
isDone=true;
}
};