尝试打开新活动的Android Exception - Surface :: lock失败,已经锁定

时间:2012-01-19 15:03:44

标签: android exception android-layout android-activity

当我尝试在按钮上打开新活动时,我会得到一个例外:

01-19 14:55:08.327: E/Surface(15454): Surface::lock failed, already locked
01-19 14:55:08.327: E/SurfaceHolder(15454): Exception locking surface
01-19 14:55:08.327: E/SurfaceHolder(15454): java.lang.IllegalArgumentException

我有一个游戏在一个带有线程的surfaceview画布上绘制,它与主进程一起运行,我正在尝试打开一个新的对话框进行输入而没有任何工作,所以我只是想尝试打开一个新的Activity这将是Exception,我正在使用锁定和解锁并且很好地同步,我尝试停止线程甚至放置几个视图。 任何帮助都很好谢谢。

1 个答案:

答案 0 :(得分:0)

我希望你的渲染线程在调用onPause()后锁定表面。不要那样做。

在你的Activity的onPause()中你应该让你的渲染线程等待(在画布锁定/解锁之外),然后让它在onResume()中再次运行。

这样做的一个简单方法是在onResume()中创建渲染线程,然后在onPause()信号中创建它应该退出(可能通过在线程循环中设置读取的布尔值)然后等待它从onPause()返回之前退出(通过Thread.join())。