title: AlarmManager with ELAPSED_REALTIME_WAKEUP not updating PendingIntent
body: <p>This works without any problems:</p>
  
  <pre><code>Intent mIntent = new Intent(getClass().getPackage().getName() + ".ALARM_TRIGGER");
  
  PendingIntent pi = PendingIntent.getBroadcast(
                  BackgroundService.getInstance(),
                  mAlarmID,
                  mIntent,
                  PendingIntent.FLAG_UPDATE_CURRENT
          );
  
  mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), interval, pi);
  </code></pre>
  
  <p>The code works. Everytime we run this code, it UPDATES pending intent with the ID (mAlarmID). </p>
  
  <p>However, the code above doesn't trigger if phone is in deep sleep. So we have to use ELAPSED_REALTIME_WAKEUP.</p>
  
  <pre><code>    mAlarmManager.setRepeating(
              AlarmManager.ELAPSED_REALTIME_WAKEUP,
              SystemClock.elapsedRealtime() + startIn,
              interval,
              pi
      );
  </code></pre>
  
  <p>After checking <code>adb shell dumpsys alarm</code>, RTC_WAKEUP always finds and updates correct pending intent. Using alarm manager with ELAPSED_REALTIME_WAKEUP however, always creates new pending intent no matter the same id. What does that mean? </p>
  
  <ul>
  <li>in #1 everytime the code runs, you'll always find only one alarm in dumpsys alarm. </li>
  <li>in #2 everytime the code runs, you'll find ONE MORE alarm in dumpsys alarm.</li>
  </ul>
  
  <p>Is this bug? How then to use this code so you will always have at max 1 alarm?</p>