我正在做一个提醒申请。它将提醒一段时间的持续时间。例如,每隔五分钟提醒一小时。在这种情况下,我试图设置两个警报。一个用于每五分钟做一次提醒,另一个用于在一小时后取消提醒闹钟。这是我的代码。
private void createIntervalNotification(int reminder, int dhour, int dminute){ //reminder in min
int interval = (reminder)*60*1000;
AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+interval, interval, getPendingIntent(this,REMINDER_ID));
int duration = (dhour*60 + dminute)*60*1000;
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+duration,getPendingIntent(this,CANCEL_REMINDER_ID));
}
private static PendingIntent getPendingIntent(Context ctxt, int id) {
Intent intent1 = new Intent(ctxt, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctxt, id,intent1, PendingIntent.FLAG_UPDATE_CURRENT);
return pendingIntent;
}
我有一些问题要做(设置提醒5分钟持续1小时)。
1)我可以用我的方法做到这一点吗?使用一个闹钟取消另一个闹钟?
2)两个警报都可以共享一个broadcastReceiver吗?如果是,那么如何区分它会被哪个警报调用?
3)是否有其他方法可以做到这一点?
答案 0 :(得分:0)
取消闹钟几乎与设置闹钟完全相同。您只需要在AlarmManager上调用另一种方法来取消,而不是创建。只需确保AlarmManager中的待定意图和广播ID相同。
通过在意图上设置额外内容来区分警报。