2012-04-20 14 views
5

Jestem nowicjuszem w Androidzie, więc proszę o zachowanie mnie. Moja główna aktywność tworzy i alarmuje w menadżerze alarmów, który ma strzelać w określonym czasie, moja główna Aktywność również tworzy odbiornik Broadcast, który ma przyjąć Intencję, że alarm został uruchomiony, wszystko działa dobrze, dopóki Menedżer zadań nie zabije mojej aplikacji. Sprawdziłem listę PendingIntent w Menedżerze alarmów i sprawdziłem, czy mój alarm został usunięty z Menedżera alarmów, Próbuję dodać usługę i zarejestrować alarm z usługi, Mam kolor czerwony, być może dlatego, że mój filtr IntentFilter odbiornika jest zdefiniowany w kodzie, a nie w manifeście, zostaje zabity po zabiciu procesu aplikacji i utknąłem na tym problemie przez dwa tygodnie :-(, z dużym pomyłką, mój projekt jest nieprawidłowy?Alarm w menedżerze AlarmManager zostaje skasowany po zabiciu procesu

Oto moje potrzeby:

  1. że alarm będzie bardzo solidny, nawet jeśli aplikacja jest zabity lub nawet jeśli telefon jest restart.
  2. samo do odbiornika transmisji.

Dziękuję z góry,

Odpowiedz

6

Jeśli użytkownik task-force-zabija lub zatrzymuje aplikację, alarmy są niezarejestrowany. W systemie Android 3.1 lub nowszym aplikacja nie uruchomi się ponownie, dopóki użytkownik nie uruchomi ręcznie jednej z Twoich aktywności.

Nie można nic na to poradzić, poza zrobieniem wszystkiego, co w naszej mocy, aby napisać aplikację wysokiej jakości, której użytkownik nie będzie potrzebował lub nie będzie chciał wymusić narzucenia.

+0

co z innym plikiem .apk, który uruchamia ponownie pierwsze WatchdogService i na odwrót? nie etyczne, ale czy to zadziała? – n00b

+0

jasne, czy to tylko od inicjowanego przez użytkownika * zabijania sił? jeśli system zabije moją aplikację (np. z powodu tymczasowego stanu niskiej pamięci), czy powinienem spodziewać się później alarmu? – Michael

+2

@Michael: Zwykłe zakończenie procesu, takie jak zabójca poza pamięcią, nie anuluje zaplanowanych zdarzeń 'AlarmManager'. – CommonsWare

Powiązane problemy