• Android Timer schedule


    timer.schedule(new MyTask(),long time1,long timer2);

    今天算是彻底的搞懂了这个以前让我为之头疼的方法。

    以下我就重点介绍一下:

    第一个參数。是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,由于 TimerTask 类 实现了 Runnable 接口。

    第二个參数的意思是,当你调用该方法后。该方法必定会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个參数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才干够第一次运行 run() 方法。

    第三个參数的意思就是,第一次调用之后。从第二次開始每隔多长的时间调用一次 run() 方法。

    [附:]

      技术人员在实现内部办公系统与外部站点一体化的时候,最重要的步骤就是从OA系统读取数据,而且依据站点模板生成终于的静态页面。

    这里就须要一个定时任务,循环的运行。

      技术人员在写定时任务的时候,想当然的以为Timer.schedule(TimerTask task, long delay)就是反复的执行task。

    程序执行后发现仅仅执行了一次,总认为是task里的代码有问题,花了非常长时间调试代码都没有结果。

      细致研读java api,发现:

      schedule(TimerTask task, long delay)的凝视:Schedules the specified task for execution after the specified delay。大意是在延时delay毫秒后运行task。并没有提到反复运行

      schedule(TimerTask task, long delay, long period)的凝视:Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay。大意是在延时delay毫秒后反复的运行task,周期是period毫秒。

      这样问题就非常明白schedule(TimerTask task, long delay)仅仅运行一次。schedule(TimerTask task, long delay, long period)才是反复的运行。

    关键的问题在于程序猿误以为schedule就是反复的运行,而没有细致的研究API,一方面也是英文能力不够,浏览API的过程中不能非常快的理解到含义。


  • 相关阅读:
    android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面
    Linux下安装Tomcat服务器和部署Web应用
    Linux下开启mysql数据库的远程访问权限
    【项目管理和构建】——Maven简介(一)
    用maven搭建多模块项目
    Maven之自定义pom类型的基础项目
    Maven之搭建本地私服(nexus)仓库
    Maven之自定义archetype生成项目骨架(一)
    Maven多模块项目搭建
    安装maven之后,cmd提示mvn不是内部命令的解决办法
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5392897.html
Copyright © 2020-2023  润新知