2013-03-19 74 views
1

我的surfraceview是我的應用程序的大部分,我想減少它的滯後,因此我被告知從UI線程中取消它。是否有可能在AsyncTask中運行SurfaceView?運行SurfaceView關閉用戶界面線程

+1

呃,你不能從UI線程運行UI。你會得到一個CalledFromWrongThread Exception。然而,你可以處理所有的處理內容,告訴你在哪裏*在後臺線程中繪製,然後只在UI線程上執行*實際繪製*。 – 2013-03-19 01:04:39

+2

SurfaceView意味着從後臺線程中抽取:您可以使用SurfaceHolder上的lockCanvas()和unlockCanvasAndPost()方法來實現此目的。 – 2013-03-19 01:38:24

回答

1

儘管可以從AsyncTask中繪製SurfaceView,但不推薦使用它。 AsyncTasks可以在串行隊列中運行,因此您可能會阻止其他任務。而只是使用一個線程。該SDK包含一個名爲LunarLander的示例應用程序,演示瞭如何執行此操作。