我有一个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