如何打破一个漫长的无限循环
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) 可以立即停止它。
我进行了搜索,但没有找到解决方案。 我有一个在线程中运行的无限游戏循环。它非常非常长,所以当我退出我的应用程序并使用 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) 可以立即停止它。