I developed a design project using notifications. I used the notification identifier as unique and set the alarm every minute, that is, 2:45 p.m., 2:46 p.m., 2:47 p.m., but the alarm only works on the last one, at 14:47 p.m.
Why?
int dayofweek; int notify; int notifyid=0; Cursor notifyvalue=db.getnotifyid(); if (notifyvalue.moveToPosition(0)) notifyid =notifyvalue.getInt(notifyvalue.getColumnIndex("notifyvalue")); if(notifyid==0) { db.InsertNotifyId(2600); } Calendar calNow = Calendar.getInstance(); Calendar calSet = (Calendar) calNow.clone(); calSet.set(Calendar.HOUR_OF_DAY,22); calSet.set(Calendar.MINUTE, 10); calSet.set(Calendar.SECOND, 0); calSet.set(Calendar.MILLISECOND, 0); int notify1 = 0; if(repeateddayname.equalsIgnoreCase("Everyday")) { Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, true,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else { String splitrepeateddayname[]=repeateddayname.split(","); for(int i=0; i < splitrepeateddayname.length; i++) { if(splitrepeateddayname[i].equalsIgnoreCase("Sunday")) { dayofweek=1+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Monday")) { dayofweek=2+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Tuesday")) { dayofweek=3+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Wednesday")) { dayofweek=4+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Thursday")) { dayofweek=5+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Friday")) { dayofweek=6+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } else if(splitrepeateddayname[i].equalsIgnoreCase("Saturday")) { dayofweek=7+(7-calSet.DAY_OF_WEEK); Cursor notifyvalue1=db.getnotifyid(); if (notifyvalue1.moveToPosition(0)) notify1=notifyvalue1.getInt(notifyvalue1.getColumnIndex("notifyvalue")); setAlarm(calSet, false,notify1+1,SplitAlramVoice[1]); db.InsertNotifyId(notify1+1); } } }
Set alarm function:
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); intent.putExtra("NotifID", notifyid); intent.putExtra("Audio", AlarmAudio); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); // alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); if(repeat) alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent); else alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,targetCal.getTimeInMillis(),dayofweek*24*60*60*1000,pendingIntent);
AlarmReceiver Class:
int notifID = intent.getExtras().getInt("NotifID"); String foraudio= intent.getExtras().getString("Audio"); NotificationManager nm; nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); CharSequence from = "My Dua"; CharSequence message = "Cheking By Ismail"; PendingIntent contentIntent = PendingIntent.getActivity(context, 0,new Intent(), 0); Notification notif = new Notification(R.drawable.ic_launcher,"Mohamed Ismail", System.currentTimeMillis()); notif.setLatestEventInfo(context, from, message, contentIntent); Uri audio=Uri.parse("mnt/sdcard/sounds/"+foraudio+".mp3"); notif.sound=audio; nm.notify(notifID++, notif);