我有一个代码
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 完成后如何停止该处理程序?
最佳答案
这行有可能吗:
handlerTimer2.postDelayed(runnableTimer2, 1000);
导致计时器在被删除后仍然运行?
关于java - handler.removeCallbacks(runnable) 不起作用 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11964973/