Я занимаюсь сеткой + плиткой, где плитки должны перемещаться по сетке. Сетка (и плитки) рисуются в SurfaceView в отдельном потоке к пользовательскому интерфейсу (пользовательский интерфейс обрабатывает события касания и помещает их в очередь для обработки сетки).
Это все хорошо. У меня есть панель инструментов, с которой я могу перетаскивать плитки. Панель инструментов - это представление, которое было добавлено в относительный макет (и работает в потоке пользовательского интерфейса).
Независимо от того, сколько раз я использую синхронизацию или пытаюсь защитить холст от записи в одно и то же время, он все равно в конечном итоге вызывает собственный SIGSEV11.
Несколько потенциальных решений:
- Поместите все в один поток - скорее всего, потерпит неудачу или будет очень медленным из-за касания или рисования
- Нарисуйте все, что имеет доступ к холсту в одной теме.
Это потребует значительных изменений, которые, вероятно, займут несколько дней.
Мне интересно, если у кого-то еще были подобные проблемы и могу ли я синхронизировать доступ к холсту без ошибок.
Большое спасибо.