Dies ist eine späte Antwort, aber hier ist eine andere Methode, wenn Sie nur eine bestimmte Kategorie von Runnables aus dem Handler entfernen möchten (dh im Fall von OP entfernen Sie einfach die Schließen-Animation und lassen andere Runnables in der Warteschlange):
int firstToken = 5;
int secondToken = 6;
mHandler.postAtTime(r1, firstToken, 0);
mHandler.postAtTime(r2, firstToken, 0);
mHandler.postAtTime(r3, secondToken, 0);
mHandler.removeCallbacksAndMessages(firstToken);
mHandler.postAtTime(r4, firstToken, 0);
Der obige Code führt nur "r3" und dann nur "r4" aus. Auf diese Weise können Sie eine bestimmte Kategorie von Runnables entfernen, die von Ihrem Token definiert wurden, ohne Verweise auf die Runnables selbst enthalten zu müssen.
Hinweis: Der Quellcode vergleicht Token nur mit dem Operanden "==" (er ruft nicht .equals () auf). Verwenden Sie daher am besten Ints / Integer anstelle von Zeichenfolgen für das Token.