当前位置: 代码迷 >> J2SE >> 请问Timer定时器的用法
  详细解决方案

请问Timer定时器的用法

热度:81   发布时间:2016-04-24 00:29:27.0
请教Timer定时器的用法
我想要销毁掉能否有办法再启用?
或者说暂时停掉,需要的时候在启用。求大侠们帮帮忙
Java code
 Timer timer = new Timer("Timer-reconnect provider Timer"); TimerTask task = new TimerTask() {    @Override    public void run() {        log.info("it is time to check jtapi Provider.");        try {            checkProvider();        } catch (Exception e) {            log.info("the Network may be disconnected,please check!");            e.printStackTrace();        }    }}

在provider INSERVICE的時候关了
在provider OUTOFSERVICE的時候开启
在provider SHUTDOWN的時候关开启

我下面这样写就不行
Java code
    @Override    public void providerInService(ProviderEvent event) {        log.info("provider is InService.");                timer.cancel();    }    @Override    public void providerOutOfService(ProviderEvent event) {        log.info("provider is OutOfService,please wait for InService.");                timer.schedule(task, 3000, 10000);    }    @Override    public void providerShutdown(ProviderEvent event) {        log.info("provider is Shutdown,please wait for restart.");                timer.schedule(task, 3000, 10000);    }


------解决方案--------------------
每次cancel task,然后重新启动的时候,重新new一个task加入schedule
  相关解决方案