zoukankan      html  css  js  c++  java
  • Android 定时任务高度【schedule】与【scheduleAtFixedRate】差别

    在android中调度定时任务有两种方法

    1.schedule

    2.scheduleAtFixedRate


    这两种方法的差别在于 首次调用时间(Date when)这个參数


    <span style="font-family:SimHei;font-size:14px;">        // TimerTask
            task = new TimerTask() {
    			@Override
    			public void run() {
    				// 输出当前毫秒为单位的时间
    				Log.i("Test", ">>>" + System.currentTimeMillis());
    			}
    		};
            
    		// 获取毫秒为单位的当前时间
    		long crt = System.currentTimeMillis();
    		
            timer = new Timer();
            // 调度,以当前毫秒时间减10秒
    //        timer.schedule(task, new Date(crt - 10 * 1000), 2000);
            timer.scheduleAtFixedRate(task, new Date(crt - 10 * 1000), 2000);</span>


    schedule调度不会去计算首次调用时间  它会马上调用一次 在之后每2秒调用一次

    scheduleAtFixedRate 调度则会计算首次调用时间,因为我们首次调用时间设置为当前时间减10秒。那么在运行时会先计算出这10秒内应task应运行的次数,再去按设定频率去运行。



  • 相关阅读:
    缓冲区
    4.9
    JDBC连接
    3.31
    BizTalk框架概述
    不通过SPS对象模型更改文档扩展字段的方法
    asdfasdf
    设计模式介绍
    Multiple Checkbox Items In A DataGrid Introduction
    Factory Method
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5337093.html
Copyright © 2011-2022 走看看