我有两个变量:
不幸的是我的代码不起作用 - 警报没有显示。你能告诉我我做错了什么吗?我可以为许多警报制作相同的ID以快速删除它吗?如果您有任何疑问,请告诉我。
int howManyDays= Integer.parseInt(countDays.getText().toString());
Cursor c = myDb.getID_REMINDER();
c.moveToFirst();
int id = Integer.parseInt(c.getString(0));
Intent intx = new Intent(getApplicationContext(), NotificationReceiver.class);
intx.putExtra("Value", nameOfMedicine.getText().toString());
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intx, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
for(int i=0; i<=howManyDays; i++) {
Calendar cc = cal;
cc.add(cc.DATE, i);
alarmManager.set(AlarmManager.RTC_WAKEUP, cc.getTimeInMillis(), pendingIntent);
}
答案 0 :(得分:0)
您可以设置重复闹钟,而不是设置多个闹钟。为此,您必须以mili秒提供重复间隔,如下所示
Intent intx = new Intent(getApplicationContext(), NotificationReceiver.class);
intx.putExtra("Value", nameOfMedicine.getText().toString());
intent.putExtra("requestCode", id);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intx, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
long repeatingInterval = 24 * 60 * 60 * 1000; // 1 day
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
repeatingInterval, pendingIntent);
请注意,无法为Android中的howManyDays设置闹钟。一种可能的低处理解决方案是设置两个警报;一个是重复警报,第二个是最后一天的固定警报。当在howManyDays之后触发第二个警报时,它将取消第一个重复警报。