我正在制作一个网格 + 瓷砖活动,其中瓷砖需要跨网格移动。网格(和图块)在 UI 的单独线程中的 SurfaceView 上绘制(UI 处理触摸事件并将它们推送到队列中以供网格处理)。
这一切都很好。我有一个工具栏,可以从中拖动图块。工具栏是一个已添加到相关布局(并在 UI 线程上运行)的视图。
无论我使用同步多少次或尝试同时保护画布不被写入,它最终仍然会导致原生 SIGSEV11。
一些潜在的解决方案:
- 将所有内容放在一个线程中 - 由于触摸与绘图,可能会失败或非常慢
- 在单个线程中绘制访问画布的所有内容。
这将需要进行可能需要几天时间的大规模更改。
我想知道是否有其他人遇到过类似的问题,以及我是否可以同步访问画布而不会出错。
非常感谢。