Nigdy użytkowania FLAG_CANCEL_CURRENT z PendingIntents których używasz podczas ustawiania alarmów. Jeśli chcesz zmienić harmonogram alarmu na inny czas, w ogóle nie potrzebujesz żadnej flagi; wystarczy utworzyć duplikat PendingIntent z flagami zerowymi, a następnie użyć go do ustawienia() alarmu: spowoduje to niejawne anulowanie istniejącego alarmu, a następnie ustawienie go na nowo określony czas. Jeśli jednak użyłeś FLAG_CANCEL_CURRENT podczas tworzenia nowego PendingIntent, to łamie on zdolność Menedżera Alarmów do rozpoznania, że jest "taki sam" jak anulowany w toku PendingIntent, i kończysz na tym, że stary, który się kręci, nie można dostarczyć, zabierając pamięć i procesor. Widziałem aplikacje z tym błędem, które dosłownie setki nieaktualnych alarmów w systemie, wystarczy, aby być zauważalną wydajność i wykorzystanie pamięci.
Jeśli chcesz zmienić dodatki bez zmiany harmonogramu istniejącego alarmu, właśnie do tego służy funkcja FLAG_UPDATE_CURRENT. Jeśli chcesz zmienić harmonogram, nie używaj żadnych flag.
Co oznacza "Nie ma zbyt wielu dodatków"? Czy korzystasz z dodatków, czy nie? –
Nie używam dodatków .. – Dory
Zrób coś, co Samsung Lollipop ma problem, gdy używasz FLAG_CANCEL_CURRENT. Odnosi się do http://stackoverflow.com/questions/29344971/java-lang-securityexception-too-many-alarmy-500-registered-od-pid-10790-u – Elye