title: How to fire alarms with same time and date android
body: <p>I have this goal setting app wherein in each activity of the goal set in the app is set with an alarm time and date.</p>
  
  <p>For example:</p>
  
  <p>Goal 1: A</p>
  
  <pre><code>Activity a1: nana
  
  Deadline: 11/5/2015
  
  Alarm Time: 9:00 am
  </code></pre>
  
  <p>Goal 2: B</p>
  
  <pre><code>Activity b1: hehe
  
  Deadline: 11/5/2015
  
  Alarm Time: 9:00 am
  </code></pre>
  
  <p>Only one of them is fired. I tried putting them different millisecond on each activity alarm time. But Its still the same. I want to them to be fired at the same time. I tried other sources and they suggest to use setExact() but i cant use that function cause its only for API 19 and above. My API is 17. And there's no problem when i set alarms with different time but the same date.</p>
  
  <p>This is my code:</p>
  
  <p>First, I put the alarm time set on an activity in the TABLE_ACTIVITIES.</p>
  
  <pre><code>public void setAlarm(){
  
          Activities act = dbhandler.getActivity(actid);
  
  // give them random millisecond
          int min = 1;
          int max = 1000;
  
          Random r = new Random();
          m = r.nextInt(max - min + 1) + min;
  
          MessageTo.message(SetNotifyActivity.this,Integer.toString(m));
  
  //the second is 0
          dbhandler.updateActivityAlarm(hour,minute,0,m,goal_id,actid);
  
  
      }
  </code></pre>
  
  <p>and then setting all the alarms in all activities the user made in each goal </p>
  
  <pre><code>public void setAlarms(){
          List&lt;Activities&gt; allActs = dbhandler.getAllActivitiesByGoal(goal_id);
  
          for (final Activities act : allActs) {
  
              //for alarm
              //Create an offset from the current time in which the alarm will go off.
  
              Calendar cal = Calendar.getInstance();
              cal.setTimeInMillis(System.currentTimeMillis());
              cal.set(Calendar.DATE, Integer.parseInt(act.getEDay()));  //1-31
              cal.set(Calendar.MONTH, Integer.parseInt(act.getEMonth()) - 1);  //first month is 0!!! January is zero!!!
              cal.set(Calendar.YEAR, Integer.parseInt(act.getEYear()));//year...
  
              cal.set(Calendar.HOUR_OF_DAY, act.getHour());
              cal.set(Calendar.MINUTE, act.getMinute());
              cal.set(Calendar.SECOND, 0);
              cal.set(Calendar.MILLISECOND, act.getMillisecond());
              //MessageTo.message(SetNotifyActivity.this, hour+":"+minute+" "+format);
  
              //assigned a unique id to notifications
  
  
              //Create a new PendingIntent and add it to the AlarmManager
              Intent intent3 = new Intent(this, ViewTasksActivity.class);
              intent3.putExtra("goalid", Integer.toString(goal_id));
              intent3.putExtra("activityId", Integer.toString(act.getActId()));
              intent3.putExtra("activityName", act.getActivityName());
              intent3.putExtra("show", "true");
              PendingIntent pendingIntent = PendingIntent.getActivity(this,
                      act.getActId(), intent3, PendingIntent.FLAG_CANCEL_CURRENT);
              AlarmManager am =
                      (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
  
  
              am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                      pendingIntent);
          }
      }
  </code></pre>