我正在按如下方式正确执行活动的定时任务。但是,当活动onResume时,抛出一个exeption,“Timer Task已经被调度”。一旦执行任务,我就取消计时器。怎么解决?谢谢
final Runnable setButton = new Runnable() {
public void run() {
myClass.aBridge.button_back.setVisibility(View.INVISIBLE);
timer.cancel();
}
};
TimerTask task = new TimerTask(){
public void run() {
webPush.this.runOnUiThread(setButton);
}
};
@Override
protected void onResume() {
super.onResume();
timer = new Timer();
timer.schedule(task, 5000);
}
在onResume之前调用任务一次:
timer = new Timer();
timer.schedule(task, 5000);
答案 0 :(得分:2)
您只能为每个TimerTask实例调用timer.schedule()一次。在安排新实例之前创建一个新实例。
编辑:对于您的代码,请不要在定义它的位置初始化TimerTask成员变量。而是在安排它之前在onResume()中创建一个新实例。