如何延迟重复警报的触发器(启动时间)



问题是我想延迟重复警报的第一个火。例如,我希望在10分钟的点击不立即进行此操作之后,如何做?

public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Main.this, ReportService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar c = Calendar.getInstance();
PendingIntent pendingIntent = PendingIntent.getService(Main.this, 0, intent, 0);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), 112500, pendingIntent);
}

此setinexactrepeating中的第二个paramater称为triggeratmillis来自Android开发人员指南:在毫秒中以毫秒为单位的时间,使用适当的时钟(取决于警报类型),警报应首先发出。这是不精确的:这段时间之前不会发出警报,但是在第一次调用警报之前,几乎可能会延迟整个警报间隔。

iam更改它,它总是从单击开始,没有延迟,任何帮助?

检查 开发人员链接在这里。第二个参数为triggeratmillis。它用作的时间,以毫秒为单位,警报应首先发出

因此,在您的情况下,将额外的毫秒添加到c.getTimeInMillis()中,然后您首先要运行待处理意图。:)

检查handler.postdelayed函数,您可以在其中指定延迟

如果使用elapsed_realtime时钟,请执行此操作

manager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime()+180000,
                180000,
                pendingIntent);

请勿使用零或system.currenttimemillis()作为经过的时钟的偏移。

最新更新