Timer的原理:周期性执行,如果定为每天10点执行,改变手机时间,会不会导致执行时间提前或者推迟? 执行一次,如果定为明天10点,我现在修改日期到明天的9:58,那是否会过2分钟就会执行?
5条回答 默认 最新
酷爱IT的阿杰 2023-07-30 01:39关注如果使用Timer进行周期性执行,并将其设置为每天10点执行,改变手机时间会影响Timer的执行时间。
改变手机时间导致执行时间提前或推迟:
当您将手机时间向前调整(比当前时间更靠近10点),Timer会立即触发任务执行,因为它会认为定时时间已经到达。同样地,当您将手机时间向后调整(比当前时间更远离10点),Timer会延迟执行,因为它会等待系统时钟达到10点才会触发执行。定时任务执行的情况:
如果您将定时器设置为明天10点执行,并且此时当前时间是今天的9:58,那么无论您将手机时间调整到哪个时间点,Timer都不会在过2分钟后立即触发执行。Timer会等待系统时钟达到明天的10点才会执行任务。Timer是依赖于系统时钟的,在定时任务的执行上,它会根据系统时钟来触发任务。如果您频繁地改变手机时间,可能会导致定时任务的执行时间不稳定。对于需要精确定时的任务,建议使用其他更为准确的定时调度方式,如AlarmManager。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报