如何在Android中停止SurfaceView?

时间:2012-09-24 07:30:46

标签: java android surfaceview

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

2 个答案:

答案 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();