2012-12-14 4 views
5

Używam Powiadomienia lokalnego w mojej aplikacji.it działa dobrze na pierwszym planie i w tle.Anuluj lokalne powiadamianie Gdy aplikacja przechodzi do stanu Zawieszony. (Usunięto z tła)

Teraz, gdy potrzebuję usunąć aplikację z tła, chcę anulować wcześniej powiadomienie .

, więc nie ma żadnej metody wywoływania w appdelegate, kiedy zamierzam usunąć moją aplikację z tła, oczywiście będzie ona zawieszona, więc żadna metoda nie zadzwoni.

, czy istnieje inny sposób na zrobienie tego?

góry dzięki ...

+0

Nie sądzę, że jest to możliwe .. delegat aplikacji 'appWillTerminate' najczęściej nie jest wywoływany, gdy aplikacja jest zabijana z zawieszonego stanu – Shubhank

+0

dzięki @Shubhank, miałem pomysł na ten temat, ale czy istnieje jakakolwiek inna droga? Aplikacja wylogowuje się automatycznie po usunięciu jej z tła, więc muszę anulować powiadomienie. – PJR

+0

automatycznie się wylogowujesz? – Shubhank

Odpowiedz

0

Biorąc pod uwagę swoją aplikację nie jest jednym z obsługiwanych trybów wykonywania tło, audio, jak VoIP, lub nawigacji, Twoja aplikacja będzie ogólnie nigdy zobaczyć willTerminate, ponieważ system zazwyczaj kończy twoją aplikację tylko wtedy, gdy jest już zawieszona (w tle). Po zawieszeniu aplikacji nie ma już szansy na działanie, więc nie można się do niej oddzwonić.

Przekazana wiadomość lub powiadomienie należy traktować jako ostatnią szansę na oczyszczenie lub zapisanie stanu przed ewentualnym zakończeniem.

Here i here to dobry przegląd powiadomień cyklu życia aplikacji & delegować wiadomości na iOS 4.0 i nowszych.

+0

jeśli ustawię "updatelocation" na to zadzwoni? Lub nie jest to dobry pomysł i jabłko będzie go odrzucić, ponieważ nie używam lokalizacji w mojej aplikacji. – PJR

+0

W takim przypadku, jeśli użytkownik wyłączy swoje usługi lokalizacyjne, aplikacja zostanie przerwana ... Sprawdź [link] (http://stackoverflow.com/questions/3762200/how-to-keep-an-iphone-app- run-on-background-fully-operational), aby uzyskać pomoc w uruchomieniu aplikacji w BG –