2014-07-02 36 views
8

Z tego co widzę, jeśli zaplanujesz powtarzający się alarm w nieskończoność, nie przestanie on działać, dopóki nie zrestartujesz swojego urządzenia lub nie odinstalujesz aplikacji.Czy Android AlarmManagers nadal działają po aktualizacji aplikacji?

Zastanawiam się, jak się zachowują w przypadku aktualizacji aplikacji? na przykład, pobierasz wersję 1 aplikacji ze Sklepu Play i uruchamiasz aplikację, a alarm zaczyna działać. Następnie jest wypuszczana wersja druga i przeprowadzana jest automatyczna lub ręczna aktualizacja. Czy ten alarm nadal działa (czy musisz ponownie uruchomić aplikację, aby uruchomić alarm)?

W moim scenariuszu potrzebuję, aby to zrobić, więc mam nadzieję, że odpowiedź brzmi, że po prostu będzie działać. Co się jednak stanie, jeśli zmienisz kod alarmu w wersji 2?

Odpowiedz

1

Zrób coś takiego, jak this.

Zasadniczo, jeśli za każdym razem, gdy uruchomi się twoja aplikacja, ponownie uruchomisz PendingIntent z tym samym identyfikatorem, jeśli był uruchomiony, nic się nie stanie i jeśli nie był uruchomiony, zacznie działać.

W ten sposób nie musisz martwić się o utratę alarmu po aktualizacji.

8

Wygląda na to, że alarmy AlarmManager nadal działają po aktualizacji aplikacji dla większości wersji Androida. Z pewnością dla systemu Android 2.3.2 lub nowszego. UninstallReceiver w AlarmManagerService została zaktualizowana do obsługi aktualizacji pakietu bez zabijania alarmów - patrz here gdzie istnieje wyraźne komentarz:

// Ten pakiet jest aktualizowana; nie zabijaj jego alarmów.

Kod do obsługi to nie było w 2.0.0 AlarmManagerService.UninstallReceiver

mi zrealizować ten pochodzi prawdopodobnie najlepsza część 3 lat za późno, aby pomóc OP, ale mam nadzieję, że to może pomóc innym.