1

最近在写游戏的时候遇到了一个问题。在我的游戏中,我使用SurfaceView并使用了while(true)作为条件。按下主页按钮后,程序退出并看到日志。但我发现循环 While(true) 仍在运行。为什么Activity停止后循环还在运行?谁能帮忙告诉我原因。谢谢

4

2 回答 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 回答