2013-01-10 20 views
12

Używam w moim projekcie UILocalNotification. Utknąłem z problemem przy użyciu UILocalNotifications. Jeśli zaplanuję powiadomienia na tydzień, usuń aplikację i zainstaluj ponownie bez zaplanowanego powiadomienia z ponownie zainstalowanej aplikacji, otrzymam powiadomienia o wcześniej zaplanowanych terminach.Otrzymuj powiadomienia lokalne po usunięciu i ponownym zainstalowaniu aplikacji iPhone

Nawet jeśli nie ma powiadomień zaplanowanych w bieżącej instalacji, otrzymuję powiadomienia. Czy istnieje sposób na niezaplanowanie/usunięcie tych powiadomień?

Odpowiedz

13

Właściwie, jeśli planujesz przyszłe powiadomienie, usuń aplikację, a następnie ponownie ją zainstaluj, w takim przypadku otrzymasz wcześniej ustawione powiadomienie. Które dostajesz.

Solutions:

Po otwarciu aplikacji następnie w "didFinishLaunchingWithOptions" metody AppDelegate, zadzwoń poniżej metody.

-(void)removeAllLocalNotification 
{ 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
} 

W ten sposób usuniesz wszystkie uprzednio ustawione powiadomienia.

Ale zanim zrobimy coś powyżej: Musisz uważać, że musisz zadzwonić do powyższej metody tylko raz. Nie za każdym razem, gdy uruchamiana jest aplikacja.

Można to zrobić w następujący sposób:

Tworzenie jednej zmiennej BOOL i przechowywać go w NSUserDefault. Teraz, gdy aplikacja jest otwarta, sprawdź jej wartość od NSUserDefault. Jeśli jest FALSE, wywołaj powyższą metodę i ustaw jej wartość na TRUE i ustaw NSUserDefault.

Teraz, po ponownym otwarciu aplikacji, otrzymasz jej wartość jako PRAWDA, więc w tej chwili nie musisz wywoływać powyższej metody. W związku z tym Twoje bieżące powiadomienie o zestawie nie zostało usunięte.

Mam nadzieję, że masz wszystko.

Happy Coding.

Pozdrawiam!

+0

Dzięki, ale jeśli nie uruchomię aplikacji po ponownej instalacji, nadal otrzymuję powiadomienia. – Nassif

+0

To jest domyślne zachowanie Apple. Nie możesz tego zarządzać. –