Wie kann ich vorübergehend deaktivieren / Bypass Android OnTouchEvent
-
27-09-2019 - |
Frage
Ich bin das Ereignis zur Zeit mit
@Override
public boolean onTouchEvent(MotionEvent ev)
{
Um Feedback von dem Benutzer zur Verfügung stellt für Spiel ich schreibe. Dieses Ereignis feuert einige Spiel-Steuerereignisse, die einige Zeit in Anspruch nehmen (weil es Animation beteiligt ist). Das Problem, das ich habe ist, während die Animation, wenn ich den Bildschirm halten berühren (AKA dieses Ereignisses Brennen), werde ich einen Timeout-Fehler:
10-02 21: 58: 30,776: ERROR / Activitymanager (67): Grund: keyDispatchingTimedOut
Im Grunde genommen, während die Animation läuft, ich dieses Ereignis nicht brauchen, obwohl es schön wäre es zu Schlange stehen.
Was kann ich tun, um die Zeitüberschreitung zu verhindern, und entweder die Ereigniswarteschlange, oder es vorübergehend deaktivieren?
Danke.
Lösung
Sind Sie zufällig den UI-Thread blockiert? Es sollte absolut kein Grund, zu tun, was Sie fordern (und es ist auch gar nicht möglich:)
Andere Tipps
Neben dem Gesagten Romain.
Vielleicht haben Sie schlafen wollen () auf Ihrem onTouchEvent.
Einfache Art und Weise zu implementieren ist add transaperent Layout darüber (fügen Sie es in Ihrer XML-fill Mutter Höhe und Breite).
in Animation starten transaparentlayout.setClickabe (true); in Animation Ende transaparentlayout.setClickabe (false);
sehr einfach.