handler.removeCallbacks(runnable)不起作用:(

时间:2012-08-15 06:30:02

标签: java android timer handler

我有一个代码

Handler handlerTimer2 = new Handler();
Runnable runnableTimer2 = new Runnable() {

    public void run() {
        try { afficherTimer2(); } catch (Exception e) {}
    }

};

public void afficherTimer2() {

    Log.d(MainActivity.APP, "ok afficher Timer 2");

    if (waitingBarTime < 15100) {
        waitingBar.setVisibility(ProgressBar.VISIBLE);
        waitingBar.setProgress((int)waitingBarTime);
        waitingBarTime = waitingBarTime + 1000;
        Log.d(MainActivity.APP, ""+waitingBarTime);
    }
    else
    {
        if (clientFound == true && waitingBarTime > 15000) {
            waitingBar.setVisibility(ProgressBar.INVISIBLE);
            clientFound = false;
            pointOfView.clear();
            parkDataBol = false;
            postForNewTaxi();
            waitingBarTime = 15200;
            runnable.run();
            handlerTimer2.removeCallbacks(runnableTimer2);
        }
        else
        {
            handlerTimer2.removeCallbacks(runnableTimer2);
            handlerTimer2.removeCallbacks(runnableTimer2, null);
            Log.d(MainActivity.APP, "ok afficher Timer 2 else 2");
        }

    }
    handlerTimer2.postDelayed(runnableTimer2, 1000);
}

但是当代码进入handlerTimer2.removeCallbacks(runnableTimer2)时;它仍然运行处理程序:S我怎么能在完成后停止这个处理程序?

1 个答案:

答案 0 :(得分:1)

是否可能,这一行:

handlerTimer2.postDelayed(runnableTimer2, 1000);

导致计时器在删除后仍然运行?

相关问题