android计时器异常onResume

时间:2012-10-05 12:27:48

标签: java android

我正在按如下方式正确执行活动的定时任务。但是,当活动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);

1 个答案:

答案 0 :(得分:2)

您只能为每个TimerTask实例调用timer.schedule()一次。在安排新实例之前创建一个新实例。

编辑:对于您的代码,请不要在定义它的位置初始化TimerTask成员变量。而是在安排它之前在onResume()中创建一个新实例。