2011-01-17 8 views
21

Sehr geehrte Damen und Herren, Ich bin ein neuer Blick auf Android. Ich habe viele Artikel über Android Service gelesen, aber ich verstehe nicht genau, was zwischen Lokalem Service und Remote Service Unterschiede gibt (außer "Lokaler Service läuft im selben Prozess wie die Essensaktivität; Remote Services laufen in ihrem eigenen Prozess") Busy Coders Guide zur Android-Entwicklung - Mark L. Murphy).Remote-Service Vs. Local Service

  1. Bitte zeigt mir, was anders ist zwischen Lokaler Service und Remote Service.
  2. Was ist der Vorteil/Nachteil der Verwendung von Local Service.
  3. Was ist der Vorteil/Nachteil der Verwendung von Remote Service.

Dank & freundlichen Grüßen Dai Son

Antwort

10

Ihre Beschreibung ist genau der Unterschied zwischen einem lokalen und Remote-Service. Es gibt nichts mehr zu sagen. Sie werden fast nie einen Remote-Dienst verwenden wollen.

+0

Lieber Falmarri, Danke für Ihre hilfreiche Antwort !. –

+3

Vielen Dank für die Bereitstellung einer klaren/prägnanten Antwort! Ich habe das Internet für dieses Problem untersucht, da es eine wichtige Designentscheidung ist und ich Tutorials zu IPC/AIDL für Android-Remote-Dienste gesehen habe, aber es ist nicht offensichtlich, warum Sie es übernehmen. Mit Ihrer Antwort scheint es nun, dass diese Remote-Dienste nur sinnvoll sind, wenn Sie mehrere * Anwendungen * einen gemeinsamen Hintergrund "Service" abfragen möchten, ansonsten ist es am besten, den Service als lokalen Dienst und Threading für die zeitraubenden Aufgaben verwenden ... bitte korrigieren Sie mich, wenn mein Verständnis falsch ist, da ich im Begriff bin, zu programmieren :) – sradforth

+1

@sradforth: 'Diese Remote-Dienste sind nur nützlich, wenn Sie mehrere Anwendungen haben, die einen gemeinsamen Hintergrund abfragen 'service'' Dies ist einer der Anwendungsfälle für einen Remote-Service. Der andere ist, wenn Ihr Dienst viel gestartet und gestoppt werden muss oder kontinuierlich im Hintergrund laufen muss (schlecht!), aber Ihre gesamte Anwendung benötigt eine Menge RAM. Sie können den Dienst remote ausführen, sodass Ihre Prozessspeicherkarten voneinander getrennt sind. Ich weiß, dass der Urbanairship-Push-Service dies nutzt. Aber ehrlich gesagt finde ich es sehr, sehr, sehr selten das "beste" Design. – Falmarri

2

Der Unterschied zwischen Remotedienst und lokalem Dienst ist: Lokaler Dienst wird in demselben Prozess ausgeführt und Remotedienst wird in anderem Prozess ausgeführt und möglicherweise in anderer Anwendung.

Sie können auf einen Remotedienst zugreifen, der in der anderen Anwendung ausgeführt wird, Sie können jedoch nicht auf einen lokalen Dienst zugreifen, der in einer anderen Anwendung ausgeführt wird.

0

Lokaler Dienst bedeutet, dass es in demselben Prozess wahrscheinlich in derselben Anwendung ausgeführt wird. Sie können einen Dienst mit der Methode startService() starten, und Sie können den Dienst mithilfe der Methode stopService() stoppen. Diese beiden Lebenszyklusmethoden oder der Service und der Remote-Service werden in der Regel in einer anderen Anwendung ausgeführt. Sie können auf sie zugreifen, indem Sie AIDL-Schnittstellen schreiben, und Sie können mithilfe von Binder eine Verbindung zu einem Remote-Dienst herstellen.

-1

Ich denke, du bist wirklich newbiew, und ich auch ^^. aber ich erkläre es so gut wie ich weiß.

Ein lokaler Dienst kommuniziert mit Ihrer Aktivität über den Prozessspeicher. Das ist schnell und einfach. Sie können jedoch kein Multiprozessprogramm wie das Plug-in für den lokalen Dienst implementieren.

aber Remote-Service kann mit anderen Prozessen kommunizieren. So können Sie Programme wie Plug-in machen. aber es ist nicht so schnell (aber genug). weil du OS fragst "Ich möchte mit ... kommunizieren". und dies geschieht durch Dateisystem (Pipe) oder Kernel-Speicher (Binder) ... Variable Routen,

so das ist nicht schnell, weil Datei oder Verkehr mit anderen Prozessen coummucations lesen.

Verwandte Themen