美文网首页
Android 定时器

Android 定时器

作者: JacksonMrwang | 来源:发表于2019-05-13 20:06 被阅读0次

    1.Handler类的postDelayed方法:

      final Handler mHandler = new Handler();
        Runnable r = new Runnable() {
    
            @Override
            public void run() {
                //do something
                //每隔1s循环执行run方法
                mHandler.postDelayed(this, 1000);
            }
        };
    
        //主线程中调用:
        mHandler.postDelayed(r, 100);//延时100毫秒
    

    2.用handler+timer+timeTask方法:

    final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if (msg.what == 1) {
                    //do something
                }
                super.handleMessage(msg);
            }
        };
    
        Timer timer = new Timer();
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            }
        };
    
         //主线程中调用:
        timer.schedule(timerTask, 1000, 500);//延时1s,每隔500毫秒执行一次run方法
    

    3.Thread+handler方法:

    final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if (msg.what == 1) {
                    //do something
                }
                super.handleMessage(msg);
    
            }
        };
    
        class MyThread extends Thread {//这里也可用Runnable接口实现
    
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(1000);//每隔1s执行一次
                        Message msg = new Message();
                        msg.what = 1;
                        handler.sendMessage(msg);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                }
            }
        }
        //主线程中调用:
        new Thread(new MyThread()).start();
    1.Handler的postDelayed方法:
    

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            //do something
        }
    }, 1000);    //延时1s执行
    
    2.timer + TimerTask方法:
    

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
    @Override
    public void run() {
    //do something
    }
    },1000);//延时1s执行

    3.Thread方法:
    

    new Thread(new Runnable() {
    @Override
    public void run() {
    try {
    Thread.sleep(1000);//延时1s
    //do something
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }).start();
    CountDownTimer countDownTimer = new CountDownTimer(totalTime, 2000) {
    @Override
    public void onTick(long millisUntilFinished) {
    updateFileData(fileId); //执行任务
    }

            @Override
            public void onFinish() {
                if (User.getInstance().isLoginIng()) {
                    if (countDownTimer != null) {
                        countDownTimer.start();
                    }
                }
            }
        };
        countDownTimer.start();
    

    相关文章

      网友评论

          本文标题:Android 定时器

          本文链接:https://www.haomeiwen.com/subject/xyzraqtx.html