Привет, я пытаюсь использовать SurfaceView и Threads, чтобы быстрее рисовать на Canvas. До сих пор я рисовал на холсте, просто расширяя класс View и рисуя в методе onDraw. Кроме того, у меня есть возможность перерисовать холст, если пользователь вводит данные с клавиатуры (путем передачи кода клавиши из действия в пользовательское представление).
Проблема в том, что я застрял в многопоточности, я заменил класс View на SurfaceView и реализовал Runnable (после этот учебник). Но я не могу передать ключевой код, если ключевой ввод произошел. Кроме того, если я вызову метод invalidate() в пользовательском представлении, ничего не произойдет. Единственное отличие от обучающего кода и моего заключается в том, что я добавил в конец цикла while эту строку:
retry = false;
Чтобы остановить выполнение потока после рисунков. И добавил после каждого клика в действии эту строку, чтобы я мог перерисовать все заново.
view.resume();
Проблемы: -view не аннулирует ключевые события и не рисует новые изображения (не знаю почему)
если я остановлю поток, вызвав thread.join(); метод, другие объекты внутри CustomView останутся в куче памяти или будут уничтожены?
как заставить это приложение выполняться автоматически при запуске, а затем выполняться только при нажатии?
почему метод недействительности не очищает холст, если я явно вызываю перед view.resume()?
p.s. Мне нужно опубликовать образцы кода, пожалуйста, дайте мне знать, и я прикреплю репозиторий git с тестовым приложением.
Спасибо