Как временно отключить / обойти Android OnTouchEvent - PullRequest
0 голосов
/ 03 октября 2010

Я сейчас использую событие

@Override
public boolean onTouchEvent(MotionEvent ev)
{

Чтобы оставить отзыв от пользователя к игре я пишу. Это событие запускает некоторые события управления игрой, выполнение которых занимает некоторое время (потому что задействована анимация). У меня проблема во время анимации: если я продолжу касаться экрана (AKA запускает это событие), я получу ошибку тайм-аута:

10-02 21: 58: 30.776: ОШИБКА / ActivityManager (67): причина: keyDispatchingTimedOut

Обычно, пока анимация запущена, мне не нужно это событие, хотя было бы неплохо поставить его в очередь.

Что можно сделать, чтобы предотвратить тайм-аут и либо поставить в очередь событие, либо временно отключить его?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 03 октября 2010

Кроме того, что сказал Ромен.
Вы можете спать () на вашем onTouchEvent.

0 голосов
/ 26 августа 2013

Простой способ реализовать это - добавить поверх него прозрачный макет (добавить его в высоту и ширину родительской заливки xml).

в анимации start transaparentlayout.setClickabe (true);в конце анимации transaparentlayout.setClickabe (false);

очень просто.

0 голосов
/ 03 октября 2010

Вы случайно не блокируете поток пользовательского интерфейса?Не должно быть абсолютно никакой причины делать то, что вы просите (и это даже невозможно:)

...