如何从Timer中停止Asynctask?

时间:2018-02-15 06:11:00

标签: java android

我试图从计时器停止Asynctask,但它没有停止。 这是我安排timerTask(asynctask)

的代码
public void CreateTimer(){
    timer =new Timer();
    timerTask = new MyTimertask();
    timer.schedule(timerTask,5000,2000);
}

2 个答案:

答案 0 :(得分:0)

TimerTask的{​​{3}}似乎没有日程安排方法。您可以使用cancel(true)取消AsyncTask。 也许您可以使用documentation或新的CountdownTimer

使用CountdownTimer

CountDownTimer cdt = new CountDownTimer(5000, 1000) {
        @Override
        public void onTick(long l) {}

        @Override
        public void onFinish() {
            cancel();//Cancel CountdownTimer
            cancel(true);// Cancel Asynctask
        }
    };
    cdt.start();

使用Thread

Thread thread = new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    Thread.sleep(5000);
                    cancel(true);//Cancel Asynctask
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                }
            }
        };
thread.start();

答案 1 :(得分:-1)

可以随时通过调用cancel(boolean).取消异步任务。可以找到更多信息here

如果您发布代码以提供更准确的答案,将会很有帮助。