android Timer与TimerTask的相关操作
项目上面的部分操作需要使用到定时器进行周期性的控制。网络上面对于定时器的操作通常有三种实现方法。
我是通过Timer与TimerTask相结合实现的定时器功能。具体实现过程如下:
第一步,得到Timer的实例化对象
Timer timer= new Timer() ;
第二步,实例化TimerTask对象
TimerTask timerTask = new TimerTask(){
publicvoid run(){
//Doing something
}
}
实例化TimerTask对象的时候,需要重写它的run()方法,然后在这个方法体内增加需要执行的具体操作。比如 输出一句话,发送一个消息之类的。
第三步,启动定时器
Timer.schedule(TimerTask, delay, period) ;
这样创建并启动一个定时器的工作就完成,但是在实际使用的过程中,可能会需要一些其他方面的操作手段。
因为在项目程序运行过程中,某个时刻定时器的参数被修改,比如delay,period。为了及时的使用最新的正确的数据,就需要对已经存在的定时器进行关闭并且使用新的参数重新创建并启动。
第一步,取消TimerTask,并在定时器Timer队列中将其删除。
If(timerTask == null){
timerTask .cancel() ;
}
第二步,重新启动定时器
If(timerTask!= null){
timerTask = new TimerTask(
public void run(){
//do something
}
) ;
}
timer.schedule(timeTask,delay,period) ;
值得注意的地方是被执行了cancle()方法之后的TimerTask,在重新启动定时器的时候,必须重新实例化TimerTask才OK,不然会报“java.lang.IllegalStateException:TimerTask is scheduled already”的错误。每个定时器任务TimerTask只能被放置一次
android Timer与TimerTask的相关操作相关推荐
- Android之Timer和TimerTask的介绍
在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask. Timer是 ...
- android的timertask,Android 中 Timer 和 TimerTask的使用
Android中Timer是一个普通的类,其中有几个重要的方法:而TimerTask则是一个抽象类,其中含有一个抽象方法run(). 使用Timer类中的schedule()方法可以完成对TimerT ...
- android 设置界面10秒无操作退休,关于Android系统无用户操作相关处理
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 最近开发产品遇到一个需求:当Android系统若干时间内无用户操作响应时启动多媒体轮播应用. ####思路1:监听输入事 ...
- 【Android APT】注解处理器 ( Element 注解节点相关操作 )
文章目录 一.获取被 注解 标注的节点 二.Element 注解节点类型 三.VariableElement 注解节点相关操作 四.注解处理器 完整代码示例 五.博客资源 Android APT 学习 ...
- 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
这里总结下android中关于手机屏幕的相关操作: 1.获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材) <uses-sdk and ...
- Android控制WIFI相关操作
Android控制WIFI相关操作 在XML文件中添加权限: <uses-permission android:name="android.permission.ACCESS_WIFI ...
- android 控制wifi模块,Android 控制wifi 相关操作实例
Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过 ...
- Android蓝牙与BLE通信相关的读、写、通知、指示操作
这段时间一直在进行手机与BLE的相关项目开发,其中对读数据.写数据.接收通知消息.接收指示型消息这几种操作有了一些了解,今天贴出来跟大家分享一下.(关于蓝牙的搜索,连接,获取服务,获取特征值等方法这里 ...
最新文章
- 杭电2028--Lowest Common Multiple Plus
- 迁移学习_Java 10迁移建议
- 2017 年最流行的 15 个数据科学 Python 库
- Linux下的DNS服务器搭建
- UR驱动包安装过程及遇到问题的解决方案
- css媒体查询(手机、平板、PC)
- VS2015启动调试程序变慢
- Arduino笔记-解决上传时出现avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00问题
- 使用jmap来生成堆转储快照
- BZOJ3442: 学习小组
- uctf-杂项题目分析
- java自行车起源_自行车的起源
- 【写作技巧】毕业论文写作资料--刊物搜索
- web api authentication
- Linux中ssh远程登录服务、SSH免密登录
- C++ emplace_back
- iPhoneX 适配笔记
- android-帧动画(原地不动人再走路)
- Mac电脑调用自带的命令行窗口
- 学习下win7任务栏个性化设置!