java/安卓关于Timer,task,schedule重新设置定时任务时间的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java/安卓关于Timer,task,schedule重新设置定时任务时间的问题相关的知识,希望对你有一定的参考价值。

我需要能定时退出安卓程序,但是一旦设定好了Timer的task任务时间后就无法改变时间,请问如何解决?

参考技术A 先cancel,然后再重新实例化、设定时间追问

在别的方法里新建的timer怎么在另一个方法里cancel?
如果new timer后就是另一个了timer了,在方法里new的timer无法在第二次进入方法时取消。

追答

把timer拿出来,做成成员变量不就行了吗
private Timer mTimer;
private void initTimer()
mTimer = new Timer();

追问

追问字数超上限,我私信你了,谢谢

java : Timer

 

用同一个Timer schedule 多个task有问题吗?

Java的一个Timer对象本身只有一个线程,如果向他提交多个task,并且某个task相当耗时的话,其他的task即使到了执行时间,仍然会等之前的task执行完毕。
更有问题,如果前一个task抛出了异常导致线程终止,后面的task将无法执行。

Java5以后推荐采用java.util.concurrent的ScheduledExecutorService,至少能避免异常导致线程结束的问题。

如果对时间有比较准确的需要,务必一个ScheduledExecutorService处理一个任务。

另外一说,每天定时执行的任务,用Windows的任务计划,Linux的crond执行一个Java的Application就可以实现,何必用Java的定时器让进程常驻,运行的越久。

以上是关于java/安卓关于Timer,task,schedule重新设置定时任务时间的问题的主要内容,如果未能解决你的问题,请参考以下文章

Java定时器:Timer

JAVA定时任务调度之Timer入门详解

定时任务,客户页面操作,使用java.util.timer(要求时间精确度不高的定时任务)

Java定时器Timer和TimerTask

Timer:定时

java在servlet里设置个定时器,让其在tomcat一运行时,自动每隔几个小时执行一个任务?