public static void StartPendingAlarm(this Context that, Class IntentClass, long delay = 1000 * 5, long repeat = 1000 * 25) { that.CancelPendingAlarm(IntentClass); var myIntent = new Intent(that, IntentClass); var pendingIntent = PendingIntent.getService(that, 0, myIntent, 0); AlarmManager alarmManager = (AlarmManager)that.getSystemService(Context.ALARM_SERVICE); if (repeat > 0) { alarmManager.setInexactRepeating( AlarmManager.RTC, delay, repeat, pendingIntent ); } else { alarmManager.set(AlarmManager.RTC, delay, pendingIntent); } }