Обходное решение для Android Touch

Я закончил программировать функциональную игру Android, но я не знаю, где искать исправление касания: каждый раз, когда экран коснулся, частота кадров падает вдвое. Мой код – это в основном копия и вставка LunarLander с onTouchEvent.

Поисковые запросы Google показывают мне основные способы обхода, которые, как они говорят, работают, но не работают (sleep onTouchEvent, onDispatchEvent, onInterceptTouchEvent, синхронизированы и т. Д.), И кажется, что невозможно использовать SurfaceView без огромного запаздывания во время событий касания.

Что мне делать? Должен ли я отказаться от SurfaceView, отключить onTouchEvent и использовать clickListener, как-то блокировать быстрые звонки? Пожалуйста, скажи мне, что случилось!

Я пробовал:

  • Создание onTouchEvent () не запускает код и возвращает false
  • Спящий onTouchEvent () или run () за 16/32/1000 миллисекунд, без разницы
  • Переопределение onDispatchevent () вместо onTouchEvent ()
  • Эксперимент с синхронизированным () в onTouchEvent ()

И вот мой код:

public class Surface extends SurfaceView implements SurfaceHolder.Callback { public CanvasThread canvasThread; private SurfaceHolder surfaceHolder; public Surface(Context context) { super(context); surfaceHolder = getHolder(); surfaceHolder.addCallback(this); setFocusable(true); } @Override public boolean onTouchEvent(MotionEvent event) { return canvasThread.touch(event); } class CanvasThread extends Thread { @Override public void run() { synchronized (this) { // game logic } } public boolean touch(MotionEvent event) { // touch logic } } } 

Intereting Posts
Метод отражения Android M freeStorageAndNotify исключение Отправка данных в действие с помощью FLAG_ACTIVITY_REORDER_TO_FRONT EditText lineSpacingExtra странное поведение Как вычислить радиус вокруг точки в Android MapView? Загрузка многопользовательского изображения Android с помощью HttpConnectionParams устарела в новых api Google Play Store – Неожиданная ошибка (-32600) Поворот изображения из данных датчика ориентации Любое решение для прошивки Samsung Galaxy ICS 4.0.3 LPQ, отправляющее два текстовых сообщения? API Google Адресов Google, getAutocompletePredictions возвращает статус «PLACES_API_ACCESS_NOT_CONFIGURED» Android – HorizontalScrollView – получить представление в фокусе (или его индекс) Как поворачивать представления при изменении ориентации без повторной компоновки? Как я могу настроить программу Launcher программно в android? Приложение принудительной остановки – также отменяет любые тревоги, которые он установил? Почему JAR-файл, скомпилированный Java SE, способен выполнять на Android Можем ли мы использовать студию Android для разработки AOSP?