0

我正在進行網格+平鋪活動,其中平鋪需要在網格中移動。網格(和圖塊)正在繪製在UI的一個單獨線程中的SurfaceView上(UI處理觸摸事件並將它們推送到網格處理的隊列中)。Android - 安全地併發訪問畫布?

這很好。我有一個工具欄,我可以從中拖動瓷磚。工具欄是已添加到相關佈局(並在UI線程上運行)的視圖。

無論我使用多少次同步或嘗試保護畫布不被同時寫入,它最終仍會導致原生SIGSEV11。

一些可能的解決方案:

  • 把一切都變成一個線程 - 可能失敗或者是因爲觸摸的速度很慢與拉伸
  • 畫出訪問畫布在單個線程的一切。

這將需要大規模的更改,這可能需要幾天。

林想知道是否有其他人有類似的問題,如果我可以同步訪問畫布沒有錯誤。

很多謝謝。

回答

0

我只會有一個線程更新屏幕,但你可以有多個線程更新屏幕後面的數據,然後讓他們設置一個標誌,導致屏幕的實際更新。

+0

但是,如果我有一個while循環不斷更新網格會有線程接受輸入的問題。 – alistair 2011-04-06 19:41:29