我试图从Sqlite中检索时间列表(包括小时和分钟),以便通过通知在闹钟管理器中执行提醒。我的方法是将存储在Sqlite中的所有预定时间循环到闹钟管理器中,根据时间列表执行通知,但通知没有提示音。
但是,当我指定一个时间(时和分)时,它可以工作。下面是代码示例,可以工作,但我不想这样做:
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 45);
Intent myIntent = new Intent(ListRemainder.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(ListRemainder.this, 0, myIntent, 0);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);
但是如果涉及循环多个时间表,它就不起作用了,而这正是我想要的方法。以下是代码示例,请问我漏掉了什么?
//listOfTime is the one which contains the list of stored scheduled time in Sqlite.
for (int i = 0; i < listOfTime.size(); i++) {
int hour = Integer.parseInt(listOfTime.get(i).toString().substring(0, 2));
int minute = Integer.parseInt(listOfTime.get(i).toString().substring(3));
System.out.print("Hour : " + hour + " Minute : " + minute);
Log.d("MyActivity", "Alarm On");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
Intent myIntent = new Intent(ListRemainder.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(ListRemainder.this, 0, myIntent, 0);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);
}