2012-08-15 29 views
0

我有一個代碼handler.removeCallbacks(可運行)不工作:(

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

是否有可能,這條線:

handlerTimer2.postDelayed(runnableTimer2, 1000); 

導致它已被刪除後,計時器即使運行

+0

我想我已經失去了我的大腦,因爲我努力學習=) – irukeru 2012-08-15 06:45:39

+0

非常感謝=)) – irukeru 2012-08-15 06:59:29