Próbuję sprawdzić, czy mój alarm jest aktywny, czy nie. Metoda alarmIsSet zwróci wartość false, zanim alarm zostanie ustawiony, wartość true, gdy alarm jest ustawiony. Jak dotąd jednak dobrze po alarmie, który anulowałem alarmIsSet będzie nadal zwracać wartość true, dopóki nie zrestartuję urządzenia. Jak to naprawić?Jak sprawdzić, czy alarm jest ustawiony?
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;
}
}