2010-02-25 27 views
13

Aby wykonać pewne działania od pewnego czasu uważam, że istnieje kilka możliwości:Android harmonogram działania

  1. użycie AlarmManager
  2. użycie ScheduledExecutorService
  3. metoda
  4. wykorzystaniu koniecznie Handler postDelayed

Co jest duża Różnica tego wszystkiego? Jaka jest najlepsza praktyka wykonywania akcji harmonogramu?

+1

To pokazuje dobre wyjaśnienie http://stackoverflow.com/a/6558821/1016544 –

Odpowiedz

16
  1. AlarmManager to globalny "Timer", ten człowiek może obudzić twoją aplikację, nawet jeśli nie została uruchomiona. Ciężki facet.
  2. ScheduledExecutorService: standardowy sposób Java, aby zrobić kilka rzeczy zaplanowane, używany w JSE, proste i znajome dla programistów Java. Zadanie zostanie wykonane w innym wątku niż interfejs użytkownika lub wątek, który zaplanuje to zadanie. Dobrze nadaje się do usług nie zajmujących się interfejsem użytkownika i do przetwarzania długich i ciężkich rzeczy.
  3. Handler: Android sposób zaplanować pracę, praca wykonywana w wątku UI (jeśli funkcja obsługi powstał w interfejsie), więc nie może być bardzo ciężki PRZETWARZANIE bo to po prostu zamrozić swoje UI.
+1

łatwo utworzyć uchwyt w wątku roboczego zbyt. –

6

AlarmManager jest niezależny od aplikacji i gwarantuje, że zadanie zostanie uruchomione.
Pozostałe dwa prowadzony jako część Activity/Service zgodnie z ograniczeniami cyklu życia (na przykład w dowolnym czasie mogą być zabite).

+1

Nie tylko, gdy urządzenie jest zablokowane i CPU umieszczać zbyt spać przyzwyczajenie ognia nawet jeśli proces aplikacji nie został zabity. – Lisandro

Powiązane problemy