Это поздний ответ, но здесь другой метод, когда вы хотите удалить только определенную категорию исполняемых объектов из обработчика (т. Е. В случае с OP, просто удалите закрывающую анимацию, оставив другие запускаемые объекты в очереди):1001 *
int firstToken = 5;
int secondToken = 6;
//r1 to r4 are all different instances or implementations of Runnable.
mHandler.postAtTime(r1, firstToken, 0);
mHandler.postAtTime(r2, firstToken, 0);
mHandler.postAtTime(r3, secondToken, 0);
mHandler.removeCallbacksAndMessages(firstToken);
mHandler.postAtTime(r4, firstToken, 0);
Приведенный выше код будет выполнять «r3», а затем только «r4».Это позволяет вам удалить определенную категорию исполняемых объектов, определенных вашим токеном, без необходимости хранить какие-либо ссылки на сами запускаемые объекты.
Примечание: исходный код сравнивает токены, используя только операнд "==" (он не вызывает .equals ()), поэтому лучше использовать целые числа / целые числа вместо строк для токена.