问题是我想延迟重复警报的第一个火。例如,我希望在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()作为经过的时钟的偏移。