项目中用到定时器,刚开始用的是 Timer定时器,这个大家都知道,但是后来发现 在 调用 timer.cancle(); 方法后不能重新启动的问题,所以我果断换成了handler来定时:
/** * ***************************下面是定时器监听网络是否中断,连接的********************************** */ Handler handler2 = new Handler() { public void handleMessage(Message msg) { if (msg.what == 1) { if (SysApp.getApp().isNetWork()){ //当为true时,网络已经连接。开始上传没有上传完的文件。 Log.e("***************","*---------------网络已经连接--开始上传");
handler.postDelayed(runnable, TIME);} } } ;} ; //定时的时长 private int TIME = 1000 ; //消息Handler handler = new Handler() ; //线程Runnable runnable = new Runnable() { @Override public void run() { // handler自带方法实现定时器 try { if (!SysApp. getApp().isNetWork()){ handler.postDelayed( this , TIME) ; } else { Message m = new Message() ; m. what= 1 ; handler2.sendMessage(m) ; } } catch (Exception e) { e.printStackTrace() ; } }} ;