我有一個TabHost中的Activity中的SurfaceView派生類(如HelloTabWidget示例)。我使用的SurfaceView附帶了優秀的動畫圖表庫:FlotChartContainer.javaTabHost中的SurfaceView導致崩潰
當我在選項卡之間切換時,一切正常。但是,只要包含此視圖的選項卡已初始化(例如顯示),我的應用程序就會註定失敗。每當發生以下情況就會死機:
按下Home鍵 當我重新打開我的應用程序,它崩潰由於surfaceCreated的IllegalStateException異常()。
開始新的活動 當我開始了新的活動(startActivity),然後按返回鍵(此方法調用我的SurfaceView的surfaceDestroyed ...?!),它崩潰由於IllegalStateException異常在surfaceCreated()。
- 我針對API等級7(Android 2.1)。
- 該代碼在未使用TabHost時有效。
- 切換選項卡不會調用surfaceDestroyed()。相反,使用onPause()和onResume()。
- 活動完成後,即使它不在活動選項卡中,也會調用surfaceDestroyed()。
請幫忙!
感謝您的想法。我相信這會起作用。但是,如何銷燬從xml佈局加載的表面?這是不錯的做法嗎? – l33t 2011-05-17 08:19:59
我不知道它是否是好的,但我希望它會幫助你的問題,我的相機表面視圖,我只有這樣處理,像onDestroy()camera.stopPreview()和onResume()camera.startpreview() )。 – Karthi 2011-05-17 09:08:35
給定一個繪圖線程的SurfaceView,我應該完全在onPause中銷燬線程並在onResume中重新創建它?我早些時候嘗試過,大部分都是黑屏。恢復時是否必須重新創建SurfaceHolder? – l33t 2011-05-17 10:34:10