2016-11-04 14 views

Antwort

2

Ja, es ist eine gute Übung, und Sie sollten es tun, wenn dieser Dienst auf unbestimmte Zeit arbeiten muss. Wenn Sie eine einzelne Aktion ausführen möchten, verwenden Sie stattdessen IntentService. Der Dienst kann auch an eine andere Komponente (Aktivität, ein anderer Dienst) gebunden und gleichzeitig gestartet werden, sodass Sie im Hintergrund arbeiten können, selbst wenn die App minimiert oder geschlossen ist. Stellen Sie sich vor, Sie müssen einige lange laufende Operationen für unbestimmte Zeit ausführen und interagieren mit UI mit diesen Operationen. Um diesen Dienst zu erstellen, starten Sie ihn und binden Sie ihn gleichzeitig an ihn. Sie erhalten eine Schnittstelle zum Steuern dieses Service von ServiceConnection während des Bindens. Der Service kann in der Zwischenzeit lange laufen. Der Punkt hier, dass verschiedene Activitis sich an diesen Dienst binden können und Operation anders darstellen. Intent-Dienst hingegen führt standardmäßig einen eigenen Hintergrundthread aus, stoppt jedoch automatisch, wenn die Arbeit an diesem Thread abgeschlossen ist.

+0

Ich würde die Informationen hinzufügen, die 'Service' auf dem Thread ausführt, den Sie starten. Sie können also einen Thread erstellen, um 'Service' zu ​​starten, und er läuft auf einem separaten Thread als' main'. –

Verwandte Themen