android定时任务为什么不用Timer
来源:互联网 发布:超级淘客软件 编辑:程序博客网 时间:2024/05/16 18:00
看完这篇文章,我突然明白,今年假期做的项目存在很大的问题!
在做定时任务的时候,有的同学可能能会用到Timer这个定时任务的辅助类,
但是使用它会有潜在的风险,风险如下,
(1)时间计算不准确问题
因为Timer是以绝对时间计算定时任务的,会受到系统时间的影响,如果在任务执行期间,更改了系统时间,那么会
导致时间计算不准确问题,导致任务没用按找预定的时间执行。
(2)只能单任务执行
简单讲就是,只能一次执行一个任务,如果前一个任务没有执行完成,后一个任务是无法并行执行的,只能等待前一个任务执行完成
才能执行。也有可能会出现这样的结果,前一个任务执行的时间太长,后几个任务时间短,可能在一个时间段内执行了多个任务,任务又
没有按照我们要执行的时间执行。
(3)非检查异常导致异步任务终止
Timer当在执行的过程中遇到非检查异常的时候,会导致本次任务失败,并且接下来的任务也无法被执行,Timer将会终止执行,这不是
我们要的结果,我们需要一套恢复机制。
Java5以后可以用下面的这个类来替代Time,并且解决了以上三个问题
java.util.concurrent.ScheduledThreadPoolExecutor
那么在Android上呢,可以用 java.util.concurrent.ScheduledThreadPoolExecutor,或者用Handler机制做,
但是不建议使用Timer
0 0
- android定时任务为什么不用Timer
- 【Android】 定时任务为什么不用Timer
- 定时任务为什么不用Timer
- Android Timer定时任务异常
- java Timer 定时任务
- Java定时任务Timer
- JAVA定时任务Timer
- timer定时任务
- 定时任务 Timer
- timer定时任务
- Timer定时任务
- Java 定时任务Timer
- Timer 定时任务
- Java定时任务Timer
- TimerTask、Timer 定时任务
- 定时任务--Timer()实现
- java Timer 定时任务
- java 定时任务Timer
- windows下用ffmpeg将图片合并成视频
- HDOJ 2570 迷瘴
- jquery.validate.js 的验证的回调
- 【瞎搞】HDU 4968 Improving the GPA
- 库函数一
- android定时任务为什么不用Timer
- Hibernate学习--------------Junit4学习
- Starship Troopers--树形dp
- 深入理解C++的动态绑定和静态绑定
- 斐波那契数列
- HashMap的工作原理
- Tomacat7启动报错 org.apache.catalina.deploy.WebXml addFilter
- Java构建器模式
- 2014多校联合第9场1009题||hdu4968 暴力