我有一个AsyncTask
,它充当我的游戏的倒数计时器。当倒计时完成后,它会显示超时时间结束屏幕,并更新屏幕上显示的计时器。一切正常,除非我需要在游戏中的暂停按钮被按下时暂停和恢复。暂停和恢复AsyncTasks? (Android)
如果我取消它并尝试重新执行它,它将崩溃IllegalStateException
。 如果我取消它并在它的位置实例化一个新的AsyncTask,那么旧的开始再次运行,并且新的同时运行。
有没有办法取消/暂停计时器,并使用AsyncTask
s重新启动它还是有不同的方式,我应该这样做吗?
编辑:
这是我做了一个解决方案:
mhandler = new Handler();
mtimerTask = new Runnable(){
public void run(){
mtimer -= 1;
if(mtimer == 0)
{
mhandler.removeCallbacks(this);
}
mhandler.postDelayed(this, 1000);
}
};
mhandler.removeCallbacks(mtimerTask);
mhandler.post(_timerTask)`
不知道,如果是去了解它的最佳方式,但它为我工作。
感谢您的信息。看着postDelayed()和Handlers,我想我找到了一个合适的解决方案。 – 2010-03-19 15:12:53
@Matt Swanson,你会通过更新上面的帖子分享合适的解决方案吗? – eros 2011-08-25 07:39:26