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 Timer schedule的更多相关文章
- Android Timer 的 schedule()方法定时循环切换图片
void java.util.Timer.schedule(TimerTask task, long delay, long period)第一个参数,是 TimerTask 类,在包:import ...
- Android定时器Timer.schedule
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次或反复多次.TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务. schedule的意思 ...
- android Timer and TImerTask
android Timer and TImerTask Caused by: java.lang.IllegalStateException: TimerTask is scheduled alrea ...
- Android Timer用法
Android考虑到线程安全问题,不允许在线程中执行UI线程,在Android中,有一个类:android.os.Handler,这个可以实现各处线程间的消息传递.先看段代码,这个实例化了一个Hand ...
- Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》
之前本专栏文章中的小案例有写到:第三十九话<Chronometer实现倒计时> 以及使用异步实现倒计时:第三十三话< AsyncTask异步倒计时> 本篇文章 结合Timer. ...
- Android Timer的应用示例
package com.hyzhou.timerdemo1; import java.util.Timer; import java.util.TimerTask; import android.os ...
- android Timer TimerTask用法笔记
Android中经常会遇到执行一些周期性定时执行的任务.初学的时候经常会使用Thread.sleep()方法.在android中,有Timer可以专门干这个事情. 先看看Timer.class中都是些 ...
- 执行循环任务new Timer().schedule(new TimerTask(){},0,1000);
package com.pingyijinren.test; import android.support.v7.app.AppCompatActivity; import android.os.Bu ...
- android Timer使用方法
Timer属性:http://www.apihome.cn/api/java/Timer.html 声明创建: private Timer mTimer; protected void onCreat ...
随机推荐
- C#, CLR, and .NET Framework versions
- Linux系统产生随机数/dev/random 和 /dev/urandom
1. 基本介绍 /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流.很多解密程序与安全应用程序(如SSH Keys, ...
- POJ 3281 Dining(最大流+拆点)
题目链接:http://poj.org/problem?id=3281 题目大意:农夫为他的 N (1 ≤ N ≤ 100) 牛准备了 F (1 ≤ F ≤ 100)种食物和 D (1 ≤ D ≤ 1 ...
- ****CI和UEditor集成
百度UEditor是一款比较常用编辑器 下载地址: http://ueditor.baidu.com/website/download.html 1.在assets目录下建立ueditor文件夹,把下 ...
- Sublime Text 中open in browser /view in browser 无反应
问题 早上用Sublime Text写html的时候,发现右键的open in browser或view in browser命令都突然无法使用了,无法像以前一样在浏览器打开编写的页面了. 开始以为是 ...
- [转] impress.js学习
引子 断断续续用了好几天,终于把 impress.js 源码看完,作为刚入门的前端菜鸟,这是我第一次看 js 源码,最初还是比较痛苦的.不过还好,impress.js源码的注释相当清楚,每个函数和事件 ...
- H5的简介
1.H5的诞生 2.介绍 HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML5 是 W3C 与 WHATWG 合作的结果. WHATWG 致力于 web 表单和应用 ...
- JSR教程2——Spring MVC数据校验与国际化
SpringMVC数据校验采用JSR-303校验. • Spring4.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. • Spring在进行数据绑定时,可同时调用校验框架完成数据 ...
- sorted()排序详解
sorted()排序详解 http://wiki.python.org/moin/HowTo/Sorting?highlight=%28howto%29#The_Old_Way_Using_t ...
- 网页图表Highcharts实践教程之标签组与载入动画
网页图表Highcharts实践教程之标签组与载入动画 Highcharts标签组 在图表的大部分元素都提供了标签功能.但很多时候,我们需要额外说明一些信息.这个时候借助原有的图表元素的标签功能就不是 ...