我正在尝试在我的小安卓游戏的不同线程上设置计时器。当时间到了,我想通过对话显示游戏。 问题是当时间到了,游戏结束时会继续生成对话框,这就是为什么我认为线程正在运行并且它没有结束。有人可以给我一些关于我做错的提示吗?
m_handler = new Handler();
m_handlerTask = new Runnable()
{
@Override
public void run() {
if(timeleft>=0)
{
timerTextView.setText("seconds remaining: " +Integer.toString(timeleft));
timeleft--;
}
else
{
timerTextView.setText("Done!!!?");
m_handler.removeCallbacks(m_handlerTask); // cancel run
createGameOverDialog();
}
m_handler.postDelayed(m_handlerTask, 1000);
}
};
m_handlerTask.run();
}
非常感谢
答案 0 :(得分:0)
你永远不会在结束区中返回,所以它总是继续发布延迟:
m_handler = new Handler();
m_handlerTask = new Runnable()
{
@Override
public void run() {
if(timeleft>=0)
{
timerTextView.setText("seconds remaining: " +Integer.toString(timeleft));
timeleft--;
}
else
{
timerTextView.setText("Done!!!?");
m_handler.removeCallbacks(m_handlerTask); // cancel run
createGameOverDialog();
return; //here
}
m_handler.postDelayed(m_handlerTask, 1000);
}
};
m_handlerTask.run();
}