如何打破一个漫长的无限循环

How to break out of a LONG infinite loop

我进行了搜索,但没有找到解决方案。 我有一个在线程中运行的无限游戏循环。它非常非常长,所以当我退出我的应用程序并使用 while(condition) 时,它会继续运行,分别在 Android 中启动另一个应用程序。 我怎样才能阻止它? 如果线程收到中断信号,我必须检查每个方法吗?

如果您的循环 运行 在另一个线程上,您可以创建自己的自定义线程扩展。简单地给它添加一个停止方法就大功告成了。

想法:

private boolean run = true;

public class MyThread extends Thread{

    public void stopThread(){
        run = false;
    }

    @Override 
    public void run(){
        while(run){
            //large code block
            if(!run)break; //to make sure the thread will stop in time
            //another large code block
        }
    }
}

只需调用 myThread.stopThread() 即可几乎立即停止它。

您也可以使用 ASyncTask,它有一个方法 cancel(boolean) 可以立即停止它。