Как мне временно отключить / обходить Android OnTouchEvent
-
27-09-2019 - |
Вопрос
Я сейчас использую событие
@Override
public boolean onTouchEvent(MotionEvent ev)
{
Обеспечить отзыв от пользователя для игры, я пишу. Это событие срабатывает с некоторых событий управления игрой, которые занимают некоторое время для завершения (потому что есть участие в анимации). Проблема у меня есть во время анимации, если я продолжаю прикоснуться к экрану (aka стреляя это событие), я получу ошибку тайм-аута:
10-02 21: 58: 30.776: Ошибка / ActivityManager (67): Причина: keydispatchingtimedout
По сути, а анимация работает, мне не нужно это событие, хотя было бы неплохо в очередь.
Что я могу сделать, чтобы предотвратить тайм-аут и либо в очередь события, либо временно отключить его?
Спасибо.
Решение
Вы случайно блокируете нить UI? Не должно быть абсолютно никаких причин делать то, что вы просите (и это даже даже невозможно :)
Другие советы
Рядом с тем, что сказал Ромейн.
Вы можете захотеть спать () на вашем OnTouchEvent.
Простой способ реализации, который добавляет трансплатежеспособный макет над ним (добавьте его в свой родитель на родительскую XML.
в анимации запуска TransaparentLayout.SetClickabe (TRUE); в анимационном конце TransaparentLayout.SetClickabe (false);
очень простой.