最近在写游戏的时候遇到了一个问题。在我的游戏中,我使用SurfaceView
并使用了while(true)
作为条件。按下主页按钮后,程序退出并看到日志。但我发现循环 While(true)
仍在运行。为什么Activity停止后循环还在运行?谁能帮忙告诉我原因。谢谢
问问题
2998 次
2 回答
1
更好的解决方案可能是设置一个布尔值来保存应用程序的状态,然后在游戏退出时将其设置为 false。
while(appActive)
//do game logic
编辑:感谢 Braj 和 Fildor 的反馈
在 onPause() 事件处理程序中添加一行
appActive = false;
((注意:我没有做过任何Android开发,这纯粹是理论上的回应))
于 2012-09-24T07:37:01.490 回答
0
我在我现在正在开发的游戏中这样做:
//Makes the thread draw until the state of running is set to false
while(this.running)
{
//Draw
}
this.thread.interrupt();
在 onPause 中:
//Stop the thread that is responible for the drawing.
this.worker.running = false;
在 onResume 中:
//Creates a new thread instance which sets this.running to true and calls the drawing method again
this.worker.restart();
于 2012-09-24T07:56:45.517 回答