• Android 计时器及TimerTask is scheduled already的Bug处理


    Android 计时器开发需要学习两个知识点:1.Timer   2.TimerTask。需要注意的是,每次调用Timer时,必须新实例化一个TimerTask对象(参考黑崎焚天解决了我的这个Bug),那就要求Timer执行完,释放掉当前TimerTask.实现代码如下:

    public class HXTimer  {
    
        private int recLen=15; //倒计时时长
        private TimerTask timerTask=null;//定时任务
        private  Handler mHandler=null;
        private Timer timer=null;//计时器
        
       public   HXTimer(int recLen, long delay, long period, Handler mHandler){
           this.recLen=recLen;
           this.mHandler=mHandler;;
           timer=new Timer();
           getTimerTastInstance();
           timer.schedule(timerTask,delay,period);
       }
        //获取一个定时任务实例
        private void   getTimerTastInstance(){
            timerTask=new TimerTask() {
                @Override
                public void run() {
                    recLen--;
                    if(recLen <= 1){
                        timer.cancel();
                    }
                    if(mHandler!=null) {
                        Message message = new Message();
                        Bundle bundle = new Bundle();
                        bundle.putInt("recLen", recLen);
                        message.setData(bundle);
                        message.what = 2000;
                        mHandler.sendMessage(message);
                    }
                }
            };
        }
        public void cancel(){
            if(timerTask!=null) {
                timerTask.cancel();
                timerTask = null;
            }
            if(timer!=null) {
                timer=null;
            }
    
        }
    }
  • 相关阅读:
    数据库里面的表空间,用户在实际开发中的使用
    并行编程的模型机制
    临时表在开发中的使用

    HIbernate编程模型
    网络数据如何可靠传输
    Spring Security编程模型
    java的缓存框架
    sort函数使用自定义数据排序使用
    FailOver的机制
  • 原文地址:https://www.cnblogs.com/XieDong/p/9528827.html
Copyright © 2020-2023  润新知