title: Cancelling multiple alarms?
body: <p>I have created an events. I have given option for notification before 10 minutes, 30 minutes and before every hour till 12 hours before. I have to set notification for all these intervals.</p>
  
  <p>Now I want to cancel the particular notification if the switch is off. I have given the same intent to cancel the notification. But I think all the notifications got cancelled. </p>
  
  <p>Also I have created time tables and events are created using the time table's id. Now if I delete one time table I want to delete all the notifications set to the events that belongs to the deleted time table.</p>
  
  <p>How can I do this? </p>
  
  <p><strong>Set notification time function:</strong></p>
  
  <pre><code>public void setNotificationTime(Calendar c)
  {
  
      Date dateFrom = new Date();
      df = new SimpleDateFormat("E MMM dd HH:mm:ss zzzz yyyy");
      try {
          dateFrom = df.parse(startTime);
      }
      catch (ParseException ex) {
  
      }
  
      dateFrom.getTime();
      c.setTime(dateFrom);
  
      hour = c.get(Calendar.HOUR_OF_DAY);
      minute = c.get(Calendar.MINUTE);
  
      if(notificationTime !=null  &amp;&amp;  !notificationTime.isEmpty()) {
  
  
          if (notificationTime.equals("10 Minutes Before")) {
  
  
              c.set(Calendar.HOUR_OF_DAY, hour);
              c.set(Calendar.MINUTE, minute - 10);
              c.set(Calendar.SECOND, 0);
              c.set(Calendar.MILLISECOND, 0);
              c.set(Calendar.DATE, day);
              // c.set(Calendar.DAY_OF_WEEK,);
  
              SetDay(c);
  
              notification = c.getTime();
              notificationTime = df.format(notification);
  
              setAlarm(c);
  
              Toast.makeText(getApplicationContext(), notificationTime, Toast.LENGTH_SHORT).show();
  
  
          } else if (notificationTime.equals("30 Minutes Before")) {
  
              c.set(Calendar.HOUR_OF_DAY, hour);
              c.set(Calendar.MINUTE, minute - 30);
              c.set(Calendar.SECOND, 0);
              c.set(Calendar.MILLISECOND, 0);
              c.set(Calendar.DATE, day);
              // c.set(Calendar.DAY_OF_WEEK,);
  
              SetDay(c);
  
              notification = c.getTime();
              notificationTime = df.format(notification);
  
              Toast.makeText(getApplicationContext(), notificationTime, Toast.LENGTH_SHORT).show();
  
              setAlarm(c);
          } else if (notificationTime.equals("1 Hour Before")) {
  
              c.set(Calendar.HOUR_OF_DAY, hour - 1);
              c.set(Calendar.MINUTE, minute);
              c.set(Calendar.SECOND, 0);
              c.set(Calendar.MILLISECOND, 0);
              c.set(Calendar.DATE, day);
              // c.set(Calendar.DAY_OF_WEEK,);
  
              SetDay(c);
  
              notification = c.getTime();
              notificationTime = df.format(notification);
  
              Toast.makeText(getApplicationContext(), notificationTime, Toast.LENGTH_SHORT).show();
  
  
              setAlarm(c);
          }
  </code></pre>
  
  <p><strong>Set Alarm function:</strong></p>
  
  <pre><code>    @SuppressLint("NewApi")
  private void setAlarm(Calendar targetmCalen) {
  
  
      intent = new Intent(getBaseContext(), NotificationReceiver.class);
      pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
      alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
      alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7, pendingIntent);
  
  }
  </code></pre>
  
  <p><strong>Notification cancel on switch off:</strong></p>
  
  <pre><code> alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
                  intent = new Intent(getApplicationContext(), NotificationReceiver.class);
                  pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), RQS_1, intent, 0);
                  alarmManager.cancel(pendingIntent);
  </code></pre>
  
  <p><strong>Notification receiver:</strong></p>
  
  <pre><code>public class NotificationReceiver  extends BroadcastReceiver {
  
  
  public static int MY_NOTIFICATION_ID = 0;
  NotificationManager notificationManager;
  Notification myNotification;
  
  EventTableHelper db;
  
  @Override
  public void onReceive(Context context, Intent intent) {
  
  
      Toast.makeText(context, "Time is set", Toast.LENGTH_LONG).show();
  
      db = new EventTableHelper(context);
  
      List&lt;EventData&gt; testSavings = db.getAllEvents();
  
      for (EventData ts : testSavings) {
          String log = "from date:" + ts.getFromDate()
                  + " ,to date: " + ts.getToDate()
                  + " ,location: " + ts.getLocation()
                  + " ,title " + ts.getTitle();
  
          Calendar c = Calendar.getInstance();
          Date date = new Date();
          Date date1 = new Date();
          Log.d("Result: ", log);
  
          SimpleDateFormat df = new SimpleDateFormat("E MMM dd hh:mm:ss zzzz yyyy");
          SimpleDateFormat df2 = new SimpleDateFormat("hh:mm a");
  
          try {
              date = df.parse(ts.getFromDate());
              date1 = df.parse(ts.getToDate());
          } catch (ParseException ex) {
  
          }
          String timeFrom = df2.format(date);
       //   String startTime = String.valueOf(timeFrom);
  
          String timeTo = df2.format(date1);
         // String endTime = String.valueOf(timeTo);
  
  
          String location = ts.getLocation();
          String title = ts.getTitle();
  
  
          Intent myIntent = new Intent(context, MainActivity.class);
          PendingIntent pendingIntent = PendingIntent.getActivity(
                  context,
                  0,
                  myIntent,
                  PendingIntent.FLAG_UPDATE_CURRENT);
  
          if(location.equals(""))
          {
              String msg = "From : " + timeFrom + "\nTo : " + timeTo;
  
              myNotification = new NotificationCompat.Builder(context)
                      .setContentTitle("Event : " + title)
                      .setContentText(msg)
                      .setWhen(System.currentTimeMillis())
                      .setContentIntent(pendingIntent)
                      .setAutoCancel(true)
                      .setSmallIcon(R.drawable.eventicon)
                      .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                      .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
                      .setDefaults(Notification.DEFAULT_SOUND)
                      .build();
  
          }
  
          else
          {
              String msg = "From : " + timeFrom + "\nTo : " + timeTo + "\nAt : " + location;
              myNotification = new NotificationCompat.Builder(context)
                      .setContentTitle("Event : " + title)
                      .setContentText(msg)
                      .setWhen(System.currentTimeMillis())
                      .setContentIntent(pendingIntent)
                      .setAutoCancel(true)
                      .setSmallIcon(R.drawable.eventicon)
                      .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                      .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
                      .setDefaults(Notification.DEFAULT_SOUND)
                      .build();
  
          }
  
          Log.i("Notify", "Notification");
          notificationManager =
                  (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
          notificationManager.notify(MY_NOTIFICATION_ID, myNotification);
  
          myNotification.flags=Notification.FLAG_AUTO_CANCEL;
  
          Intent i = new Intent();
          i.putExtra("notificationId",MY_NOTIFICATION_ID);
  
          MY_NOTIFICATION_ID ++;
  
      }
      }
   }
  </code></pre>
  
  <p>Which changes should I do to achieve the desired result?</p>