Android AlarmManager.setRepeating()

时间:2015-12-02 23:38:16

标签: android widget alarmmanager broadcast

此代码是否有效?

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

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

1 个答案:

答案 0 :(得分:0)

简短回答

不,试试

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时间。返回从启动开始经过的时间。在这种情况下,您需要SystemClock.currentTimeMillins()