I am trying to check if my alarm is active or not. The alarmIsSet method will return false before the alarm is set, true when the alarm is set. So far so good, however, after the alarm that I canceled, alarmIsSet will continue to return true until I reboot the device. How to fix it?
public class Alarm extends Activity { private Intent intent = new Intent("PROPOSE_A_TOAST"); private void alarm (boolean activate) { AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0); if(activate == true) { int type = AlarmManager.ELAPSED_REALTIME_WAKEUP; long interval = 3000; long triggerTime = SystemClock.elapsedRealtime(); am.setRepeating(type, triggerTime, interval, pi); } else { am.cancel(pi); } } private boolean alarmIsSet() { return PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_NO_CREATE) != null; } }
android alarmmanager alarm
Holm
source share