android用timer做定时任务,崩溃的原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android用timer做定时任务,崩溃的原因?相关的知识,希望对你有一定的参考价值。

timer不好吗?接收更新数据,能正常工作一段时间,十分钟左右,然后就崩溃。有什么好办法?刚开始,只用timer,不行,加上handler,还是不行。

参考技术A 在做定时任务的时候,有的同学可能能会用到Timer这个定时任务的辅助类,
但是使用它会有潜在的风险,风险如下,
(1)时间计算不准确问题
因为Timer是以绝对时间计算定时任务的,会受到系统时间的影响,如果在任务执行期间,更改了系统时间,那么会
导致时间计算不准确问题,导致任务没用按找预定的时间执行。
(2)只能单任务执行
简单讲就是,只能一次执行一个任务,如果前一个任务没有执行完成,后一个任务是无法并行执行的,只能等待前一个任务执行完成
才能执行。也有可能会出现这样的结果,前一个任务执行的时间太长,后几个任务时间短,可能在一个时间段内执行了多个任务,任务又
没有按照我们要执行的时间执行。
(3)非检查异常导致异步任务终止
Timer当在执行的过程中遇到非检查异常的时候,会导致本次任务失败,并且接下来的任务也无法被执行,Timer将会终止执行,这不是
我们要的结果,我们需要一套恢复机制。

Java5以后可以用下面的这个类来替代Time,并且解决了以上三个问题
java.util.concurrent.ScheduledThreadPoolExecutor

那么在android上呢,可以用 java.util.concurrent.ScheduledThreadPoolExecutor,也可以用Handler机制做,
但是不建议使用Timer追问

看到过这篇文章,timer 有什么用,既然会崩溃?

以上是关于android用timer做定时任务,崩溃的原因?的主要内容,如果未能解决你的问题,请参考以下文章

Java Timer定时器原理

用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎么做???

通过C#的System.Timers.Timer封装一个定时任务工具

详解java定时任务

android 定时任务

详解java定时任务---Timer篇