I’m trying to stop a repeating alarm.
I already looked all over the web for solution, but my code seems fine…
Still it doesn’t stop the alarm…
Here’s a little bit of code (FM is a file-writing object)
public void StartAlarm() {
Intent intent = new Intent(getApplicationContext(), AlarmReciever.class);
PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar alarm = Calendar.getInstance();
alarm.setTimeInMillis(System.currentTimeMillis());
alarm.set(Calendar.HOUR_OF_DAY, 15);
alarm.set(Calendar.MINUTE, 0);
long alarmCal=alarm.getTimeInMillis();
if (alarmCal<=new Date().getTime()) {
alarm.add(Calendar.DAY_OF_MONTH, 1);
}
am.setRepeating(AlarmManager.RTC_WAKEUP, alarm.getTimeInMillis(), AlarmManager.INTERVAL_DAY, sender);
FM.Write("startAlarm()");
}
public void StopAlarm() {
if (isAlarmRunning()) {
Intent intent = new Intent(getApplicationContext(), AlarmReciever.class);
PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(sender);
FM.Write("alarm canceled");
isAlarmRunning();
}
public boolean isAlarmRunning() {
Intent intentToCheck = new Intent(getApplicationContext(),AlarmReciever.class);
boolean alarm = PendingIntent.getBroadcast(getApplicationContext(), 0, intentToCheck,
PendingIntent.FLAG_NO_CREATE) != null;
FM.Write("alarm = "+alarm);
if (!alarm) {
return false;
}
else
return true;
}
Thanks!
use this in both function