0

我正在正确执行活动的定时任务,如下所示。但是,当活动 onResume 时,会抛出一个异常,“定时器任务已安排”。一旦执行任务,我就会取消计时器。如何解决?谢谢你

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);
4

1 回答 1

2

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

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

于 2012-10-05T13:50:43.137 回答