Android AlarmManager.setRepeating()

Android AlarmManager.setRepeating()

此代码有效吗?

alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + 15000, 15000, pendingIntent);

我需要在安装应用程序后每 15 分钟执行一次相同的任务。

简答:

没有,试试

long interval = 15 * 60 * 1000; // 15 minutes
alarmManager.setRepeating(alarmType, SystemClock.currentTimeMillis() + interval, interval, pendingIntent);

启动15分钟后第一次激活,之后每15分钟激活一次。

长答案:

嗯,我强烈推荐给你official Android documentation。 如果您查看 AlarmManamger.setRepeating() method signature,您会发现它接受以毫秒为单位的开始时间和间隔持续时间。此外,它需要 Unix 时间作为开始时间。尽管 SystemClock.elapsedRealtime() 提供以毫秒为单位的时间,但它不会为您提供 Unix 时间。它 returns 它从启动时经过的时间。 SystemClock.currentTimeMillins() 是您在这种情况下所需要的。