onunix 2023-07-29 15:30 采纳率: 77.8%
浏览 8
已结题

请教一个Timer定期执行的问题

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。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月9日
  • 已采纳回答 8月1日
  • 创建了问题 7月29日