title: Alarm Manager does not fire a broadcast
body: <p>I've got a service which setups an <code>AlarmManager</code> as shown:</p>
  
  <pre><code>private void setupInsuranceNotification(@NonNull String plate, @NonNull LocalDate insuranceDeadline)
      {
          LocalDate now = LocalDate.now();
          int daysToDeadline = getDaysBetweenDates(now, insuranceDeadline);
          String notificationTitle = "Assicurazione " + plate;
          String notificationMessage;
          int millsBetweenNotifications = 1000 * 60 * 60 * 24; // 1 day default
          LocalDate notificationStart = now;
  
          if (daysToDeadline &gt; 0)
          {
              notificationMessage = daysToDeadline + " giorni alla scadenza.";
  
              if (daysToDeadline &gt; 30)
              {
                  // show the notification only when they are 30 days left
                  notificationStart = now.withFieldAdded(DurationFieldType.days(), daysToDeadline - 30);
              }
          }
          else if (daysToDeadline == 0)
          {
              notificationMessage = "Assicurazione scaduta oggi.";
          }
          else
          {
              if (daysToDeadline &gt;= -15)
              {
                  // tolerance period
                  notificationMessage = Math.abs(daysToDeadline) + " alla fine del periodo di tolleranza!";
                  millsBetweenNotifications = 1000 * 60 * 60 * 6; // 6 hours
              }
              else
              {
                  // insurance expired
                  notificationMessage = "Periodo di tolleranza finito! L'assicurazione è scaduta!";
                  millsBetweenNotifications = 1000 * 60 * 60; // 1 hour
              }
          }
  
          Intent notificationIntent = new Intent(this, NotificationPublisher.class);
          notificationIntent.putExtra("notification_title", notificationTitle);
          notificationIntent.putExtra("notification_message", notificationMessage);
          PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
          AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
          alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, notificationStart.toDate().getTime(), millsBetweenNotifications, alarmIntent);
      }
  </code></pre>
  
  <p>this is my <code>NotificationPublisher</code> class:</p>
  
  <pre><code>public class NotificationPublisher extends BroadcastReceiver
  {
      private static final int NOTIFICATION_ID = 1;
  
      @Override
      public void onReceive(Context context, Intent intent)
      {
          String title = intent.getStringExtra("notification_title");
          String message = intent.getStringExtra("notification_message");
          Notification.Builder builder = new Notification.Builder(context);
          NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
  
          builder.setContentTitle(title);
          builder.setContentText(message);
          builder.setSmallIcon(R.drawable.ic_notification);
          manager.notify(NOTIFICATION_ID, builder.build());
      }
  }
  </code></pre>
  
  <p>My problem is that the <code>setupInsuranceNotification</code> is correctly executed untill the end (there isn't any exception), but my <code>NotificationPublisher</code> is never fired (I've put a breakpoint on in to check).</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>this is my <code>onHandleIntent</code> from <code>NotificationService</code> class:</p>
  
  <pre><code>@Override
      protected void onHandleIntent(@Nullable Intent intent)
      {
          Debug.waitForDebugger();
  
          if (Utilities.vehicleFileExists(this))
          {
              try
              {
                  DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                  DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                  Document doc = dBuilder.parse(Utilities.getVehicleListFile(this));
                  Element root = doc.getDocumentElement();
  
                  root.normalize();
  
                  NodeList vehicleNodeList = root.getElementsByTagName("vehicle");
  
                  for (int i = 0; i &lt; vehicleNodeList.getLength(); i++)
                  {
                      Element vehicleElement = (Element) vehicleNodeList.item(i);
                      Element matriculationDateElement = (Element) vehicleElement.getFirstChild();
                      Element endInsuranceDateElement = (Element) matriculationDateElement.getNextSibling();
                      Element lastInspectionDateElement = (Element) endInsuranceDateElement.getNextSibling();
  
                      String plate = vehicleElement.getAttribute("plate");
                      LocalDate matriculationDate = LocalDate.parse(matriculationDateElement.getFirstChild().getNodeValue(), DateTimeFormat.forPattern(Utilities.Formats.Date.ITALIAN));
                      LocalDate endInsuranceDate = LocalDate.parse(endInsuranceDateElement.getFirstChild().getNodeValue(), DateTimeFormat.forPattern(Utilities.Formats.Date.ITALIAN));
                      LocalDate lastInspectionDate = null;
  
                      if (lastInspectionDateElement.getFirstChild() != null) // &lt;inspection_dates/&gt;
                      {
                          lastInspectionDate = LocalDate.parse(lastInspectionDateElement.getFirstChild().getNodeValue(), DateTimeFormat.forPattern(Utilities.Formats.Date.ITALIAN));
                      }
  
                      LocalDate inspectionDeadline = getInspectionDeadline(matriculationDate, lastInspectionDate);
  
                      setupInsuranceNotification(plate, endInsuranceDate);
                      setupInspectionNotification(plate, inspectionDeadline);
                  }
              }
              catch (ParserConfigurationException | SAXException | IOException ignored) {}
          }
      }
  </code></pre>