我想暂停“计时器”线程....或者我可以说想要将其置于“等待”模式,然后在完成某些事情后通知。
Timer _catchTimer = new Timer();
CatchAppNameTimer _catchTimerTask = new CatchAppNameTimer(_catchTimer);
_catchTimer.schedule(_catchTimerTask, 0, 5000);
我的“TimerTask(_catchTimerTask)”每次都显示一个弹出屏幕......该弹出屏幕有两个按钮 - 解锁,取消。
基本上我想要那个直到用户点击......解锁/取消btn之一,时间线程设置为等待模式......当用户点击解锁/取消按钮之一...... ....只有在那之后时间线程才会得到通知。
目前我在“timertask”的运行方法中使用一个布尔变量......来处理死锁情况......即每隔几秒调用一次TimerTask......即使已经弹出屏幕显示…………
如下 :
public void run() {
GlobalSingleton obj = null;
obj = GlobalSingleton.getInstance();
if( obj.getShowDialog() )
return;
unlockField();
}
当第一次调用“unlockFiled()”时......我将一个布尔变量设置为 true(使用运行时存储)......该值由 getShowDialog() 方法检索。并且在
fieldChanged(Field field, int context) { }
解锁/取消按钮的方法............我将布尔变量的值设置为false......通过调用......
GlobalSingleton obj = null;
obj = GlobalSingleton.getInstance();
obj.setShowDialog(false);
但是正确的方法是“计时器任务”不应该再次启动......直到用户按下取消阻止/取消按钮并且控制退出该fieldChanged(Field field, int context) { }
方法。
我应该使用不同的线程来处理....等待 - 通知 Timer 对象上的操作....基于布尔变量。我已经尝试过这种方法............但无法得到解决方案......
我将不胜感激任何建议....
问候。