java – 恢复活动时“线程已经开始”
这是我的情况:
我正在为 android构建一个游戏,我的游戏的活动由一个自定义的surfaceView组成,它具有游戏逻辑和渲染的线程.该架构类似于Google网站上的LunarLander演示. 当活动开始时,它会创建surfaceView并调用此方法: @Override public void surfaceCreated(SurfaceHolder holder) { renderThread.start(); } 当我按住Home按钮退出游戏时,调用onPause()方法,调用surfaceDestroyed().在surfaceDestroyed我停止游戏Thread通过调用: @Override public void surfaceDestroyed(SurfaceHolder holder) { synchronized(holder) { renderThread.stop(); } } 该应用程序去后台罚款.然后,当我通过按下图标重新启动应用程序时,我会在屏幕上显示“强制关闭”弹出窗口中的“已经开始的线程”消息.当活动在render线程上调用start()时,活动进入“surfaceCreated”方法时,会发生此消息. 现在我已经看了几个小时,不知道为什么会这样.我相信当我关闭应用程序时我的线程被停止,所以我不明白为什么它已经开始了. 解决方法
那些方法不会做你认为他们做的事情.从
API doc:
和:
如果你想暂停一个线程,你必须在线程内使用Object.wait()和Objecft.notifyAll(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |