最近在写游戏时我遇到了问题。在我的游戏中,我使用SurfaceView
并使用while(true)
作为条件。按下主页按钮后,程序退出,我看到日志。但我发现循环While(true)
仍在运行。为什么在Activity停止后循环仍然在运行?任何人都可以帮忙告诉我原因。感谢名单
答案 0 :(得分:1)
更好的解决方案可能是设置bool以保持应用程序的状态,然后在游戏退出时将其设置为false。
while(appActive)
//do game logic
编辑:感谢Braj和Fildor的反馈
在onPause()事件处理程序中添加一行
appActive = false;
((注意:我没有做任何Android开发,这纯粹是理论上的反应))
答案 1 :(得分: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();