2015-09-10 9 views
11

Ich baue eine Android-App, die regelmäßig etwas in einem Service tun muss. Und ich fand, dass ScheduledThreadPoolExecutor und ScheduledExecutorService zu Timer vorzuziehen ist.ScheduledExecutorService oder ScheduledThreadPoolExecutor

Kann jemand den Unterschied zwischen ScheduledExecutorService und ScheduledThreadPoolExecutor erklären und welche ist besser geeignet für Android?

aktualisieren

Ich habe gerade this article und this post den Unterschied zwischen mehreren Art und Weise erklären sich wiederholende periodische Aufgaben zu implementieren. In meinem Fall ist ScheduledThreadPoolExecutor und AlarmManager besser geeignet.

+0

Dachten Sie den Handler mit? – Fildor

+0

[Handler] (http://developer.android.com/reference/android/os/Handler.html) verfügt über verschiedene Methoden zum Planen von Code für die Ausführung. – Fildor

Antwort

5

ScheduledExecutorService ist eine Schnittstelle (a contract) und ScheduledThreadPoolExecutor implementiert, die Schnittstelle.

Da Sie nicht direkt eine Schnittstelle instanziieren können, müssen Sie Implementierung verwenden, um durch ScheduledThreadPoolExecutor direkt oder über Mittel von Factory-Methode wie java.util.concurrent.Executors instanziieren, die eine Instanz von ScheduledThreadPoolExecutor zurückgibt.

beispiels

ScheduledExecutorService scheduler = 
Executors.newScheduledThreadPool(1); 

scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture 

einen Blick auf Scheduled Executor Service Usage for Andriod

3

Dies ist die gleiche, ScheduledThreadPoolExecutor ist eine Implementierung von ScheduledExecutorService

Verwandte Themen