Приведенный ниже код не выдает никаких ошибок и не работает.Когда я отлаживаю метод addInvoiceReminder (), кажется, что время устанавливается правильно, и AlarmManager настроен на отключение в ранее установленное время.Кто-то может увидеть мой недостаток?Я не уверен, почему событие onRecieve BroadcastReceiver никогда не запускается.
//---adds an invoice reminder when the user successfully adds a sales or expense invoice---
public void addInvoiceReminder () {
//---gets a Calendar object with current time---
Calendar cal = Calendar.getInstance();
//---sets the calendar object to the reminder dialog date---
//cal.set(reminder_year, reminder_month, reminder_day);
cal.add(Calendar.SECOND, 30);
Intent intent = new Intent(this, DueInvoiceAlarmReceiver.class);
intent.putExtra("reminder", "Invoice Number: 999999 is due!");
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
//---gets the alarm manager service set for the calendar time which is the reminder time---
AlarmManager alarm_manager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarm_manager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
}
//---Receives the event fired when the reminder date for an invoice is passed---
public class DueInvoiceAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
Bundle bundle = intent.getExtras();
String message = bundle.getString("reminder");
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}