我想暫停「計時器」線程....或者我可以說要將其放入「等待」模式,然後在某些事情完成後通知。如何暫停計時器線程
Timer _catchTimer = new Timer(); CatchAppNameTimer _catchTimerTask = new CatchAppNameTimer(_catchTimer); _catchTimer.schedule(_catchTimerTask, 0, 5000);
我 「的TimerTask(_catchTimerTask)」 每次顯示彈出畫面....這彈出屏幕上有兩個按鈕 - 解鎖,取消。
基本上我想,直到用戶點擊....其中一個解鎖/取消btn,時間線程得到設置在等待模式.....當用戶點擊其中一個解鎖/取消按鈕.... ........只有在那之後時間線程纔會被通知。
目前我在「timertask」的run方法中使用了一個布爾變量......來處理死鎖情況......即每隔幾秒調用TimerTask ...... even當已經顯示彈出畫面..........
如下:
public void run() {
GlobalSingleton obj = null;
obj = GlobalSingleton.getInstance();
if(obj.getShowDialog())
return;
unlockField();
}
當第一次 「unlockFiled()」 稱爲........我設置一個布爾變量爲true(使用運行時存儲).......這個值由getShowDialog()方法檢索。而在這兩個解鎖/取消按鈕的
fieldChanged(Field field, int context) { }
方法.........我設置了布爾VAR的值設置爲false ......通過調用...
GlobalSingleton obj = null; obj = GlobalSingleton.getInstance(); obj.setShowDialog(false);
但是正確的做法是「計時器任務」不應該再次啓動.......直到用戶按解鎖/取消按鈕和控制離開fieldChanged(Field field, int context) { }
方法。
shuld我使用不同的線程來處理....等待 - 基於布爾變量的Timer對象的通知操作。 I HV已經嘗試過這種方法,但..........不能得到解決......
我會gratefull的任何建議....
問候。