更改系统时间时如何保持 timer.shcedule() 运行

how to keep timer.shcedule() running when changing system time

最近,我正在使用 android 服务来启动一个新的计时器和 运行 一个 timerTask 来做一些事情。
代码如下:

Timer timer = new Timer();
timer.schedule(new RetrieveTask(), 300000);

private class RetrieveTask extends TimerTask {

    @Override
    public void run() {
        //do something
        timer.schedule(new RetrieveTask(), 300000);
    }
}

它运行良好,但如果我将系统时间更改为比当前系统时间更早的时间,它就无法运行。我浏览了 java API 文档并知道了原因。

如果我想保持运行ning即使我改变了系统时间怎么办?

非常感谢您的帮助。

已经得到解决方案。使用 receive 接收时间更改意图并重新启动此计时器。