title: Android AlarmManager - Scheduling a recurring Intent to fire off twice a day
body: <p>After reading lots of sample code into this matter, I'm trying to figure out the simplest way to achieve the following:</p>
  
  <p>I want to be able to schedule an Intent that calls back to my Alarm BroadcastReceiver, which in turn fires off my Service. However, I want to set up so that it calls said Intent twice a day and to only schedule the alarms if they haven't already been set (likewise for canceling the alarms).</p>
  
  <p>However, I am unsure if the following code is the correct way to set and cancel alarms.</p>
  
  <pre><code>//Static function for setting the alarm
  //My midday calendar object (cal1)
  
  ...
  
  //My evening calendar object (cal2)
  AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE)
  Intent myIntent = new Intent(context, MyAlarmReceiver.class);
  
      PendingIntent firstCallIntent = PendingIntent.getBroadcast(context, FIRST_CALL_ID, myIntent, PendingIntent.FLAG_NO_CREATE);
      PendingIntent secondCallIntent= PendingIntent.getBroadcast(context, SECOND_CALL_ID, myIntent, PendingIntent.FLAG_NO_CREATE);
      if(firstCallIntent == null){
          if(DEBUG){
              Log.d(TAG, "Setting Midday Alarm");
          }
          firstCallIntent = PendingIntent.getBroadcast(context, FIRST_CALL_ID, myIntent, 0);
          alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), AlarmManager.INTERVAL_DAY, firstCallIntent);
      }
      if(secondCallIntent == null){
          if(DEBUG){
              Log.d(TAG, "Setting Evening Alarm");
          }
          secondCallIntent = PendingIntent.getBroadcast(context, SECOND_CALL_ID, myIntent, 0);
          alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), AlarmManager.INTERVAL_DAY, secondCallIntent);
      }
  
  
  //Static call to cancel the alarm.
  AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE)
  Intent myIntent = new Intent(context, MyAlarmReceiver.class);
  PendingIntent firstCallIntent = PendingIntent.getBroadcast(context, FIRST_CALL_ID, myIntent, 0);
  alarms.cancel(firstCallIntent);
  firstCallIntent.cancel();
  PendingIntent secondCallIntent = PendingIntent.getBroadcast(context, SECOND_CALL_ID, myIntent, 0);
  alarms.cancel(secondCallIntent);
  secondCallIntent.cancel();
  </code></pre>