【发布时间】:2019-07-19 15:55:24
【问题描述】:
我正在尝试根据 UnixTimestamp 设置警报,但应用程序总是在我设置它的时间之前发送警报,例如我在 1563551362 上设置警报,现在问题是我在 1563551362 上没有收到警报但我收到了警报在我设置的时间之前,任何人都可以帮忙吗?
我尝试了以下代码来设置闹钟:
private void setNotificationAlarm(long unixTimeStamp){
AlarmManager alarmManager = (AlarmManager) getContext().getSystemService(ALARM_SERVICE);
Intent intent = new Intent(getContext(), broadcastReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(), 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, broadcastReciever, pendingIntent);
}
【问题讨论】:
-
只是猜测(因为从问题中不清楚),您是否混淆了自纪元以来的毫秒和秒?如果您调用的方法需要毫秒并且您传递了 1563551362(秒),它将被理解为 1970 年 1 月 19 日 02:19:11.362 UTC。这可能会导致警报立即触发。
标签: java android alarmmanager unix-timestamp