以下行之间有什么区别
(A)
cal.add(Calendar.MILLISECOND, 0);
(B)
cal.set(Calendar.MILLISECOND, 0);
一旦调用/触发警报,取消Alarm
有多重要?如果我们不取消会怎么样?
代码
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, i,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Get the AlarmManager service
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, triggerInMills, sender);
答案 0 :(得分:1)
Calendar#add()
将指定的金额添加到指定的字段。
如果你这样做
cal.add(Calendar.MILLISECOND, 1);
日历的实例将在1
的毫秒字段中获得增加。如果日历的时间为212
毫秒,则此方法调用将使其为213
毫秒。
Calendar#set()
将字段设置为您想要的字段。
如果你这样做
cal.set(Calendar.MILLISECOND, 0);
日历的时间为212
毫秒,这会导致0
毫秒。
一种方法添加,其他设置
一旦调用/触发警报,取消警报有多重要?如果我们不取消会怎么样?
如果您只使用AlarmManager#set()
,则不会重复,因此您无需在执行后取消任何。
如果您使用AlarmManager#setRepeating()
,则必须取消。
如果您不取消,它会不断重复,就像文档和名称所暗示的一样。
所有警报将在关机/重启时被删除,需要重新创建。