Android:mhandler.postDelayed()在屏幕关闭时不准确

Android:mhandler.postDelayed()在屏幕关闭时不准确,android,Android,我使用mhandler.postDelayed(runnable,5000)每5秒将数据写入一个文件 当屏幕关闭时,我从文件中观察到postDelayed(runnable,5000)的计时。 有时它是准确的,但一小时后,postDelayed(runnable,5000)的计时将增加到10秒 两小时后,postDelayed(runnable,5000)的计时增加到15秒。 三小时后,postDelayed(runnable,5000)的计时增加到20秒,以此类推 后延迟触发时间随时间变化,这

我使用mhandler.postDelayed(runnable,5000)每5秒将数据写入一个文件

当屏幕关闭时,我从文件中观察到postDelayed(runnable,5000)的计时。 有时它是准确的,但一小时后,postDelayed(runnable,5000)的计时将增加到10秒

两小时后,postDelayed(runnable,5000)的计时增加到15秒。 三小时后,postDelayed(runnable,5000)的计时增加到20秒,以此类推

后延迟触发时间随时间变化,这似乎很奇怪


我是在期待这一点还是我的代码中有错误?

您应该尝试使用其他处理程序

试试看:


定时器是一种好方法吗?我试试看。如果它仍然不能工作,我可以用AlarmManager代替。是的,它应该,我用过一次它来创建倒计时。
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        //...Perform a task...
    }
};
new Timer(delay, taskPerformer).start();