我有一個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