当我尝试在按钮上打开新活动时,我会得到一个例外:
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,我正在使用锁定和解锁并且很好地同步,我尝试停止线程甚至放置几个视图。 任何帮助都很好谢谢。
答案 0 :(得分:0)
我希望你的渲染线程在调用onPause()后锁定表面。不要那样做。
在你的Activity的onPause()中你应该让你的渲染线程等待(在画布锁定/解锁之外),然后让它在onResume()中再次运行。
这样做的一个简单方法是在onResume()中创建渲染线程,然后在onPause()信号中创建它应该退出(可能通过在线程循环中设置读取的布尔值)然后等待它从onPause()返回之前退出(通过Thread.join())。