Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Services

Android Services

Daniel Bader

March 11, 2012
Tweet

More Decks by Daniel Bader

Other Decks in Programming

Transcript

  1. ▪ Applikationskomponente die langandauernde Operationen im Hintergrund ausführt und kein

    User-Interface hat ▪ Services können, falls gewünscht, von anderen Applikationen benutzt werden Service? 2
  2. ▪ Applikationskomponente die langandauernde Operationen im Hintergrund ausführt und kein

    User-Interface hat ▪ Services können, falls gewünscht, von anderen Applikationen benutzt werden ▪ Achtung: Services laufen im main thread des Host-Prozesses! (→Hintergrundthread für CPU-intensive oder blockierende Operationen erzeugen) Service? 2
  3. ▪ Applikationskomponente die langandauernde Operationen im Hintergrund ausführt und kein

    User-Interface hat ▪ Services können, falls gewünscht, von anderen Applikationen benutzt werden ▪ Achtung: Services laufen im main thread des Host-Prozesses! (→Hintergrundthread für CPU-intensive oder blockierende Operationen erzeugen) ▪ Zwei Erscheinungsformen: ▪ Unbounded ▪ Bounded Service? 2
  4. 3

  5. Unbounded Service 3 ▪ Führt eine einzelne Operation durch ▪

    Liefert keine direkte Rückmeldung (“fire and forget”) ▪ Sollte sich nach Abschluss der Operation selbst beenden
  6. Unbounded Service 3 ▪ Führt eine einzelne Operation durch ▪

    Liefert keine direkte Rückmeldung (“fire and forget”) ▪ Sollte sich nach Abschluss der Operation selbst beenden Bounded Service ▪ Komponenten können sich an Service “binden” und mit ihm kommunizieren (→android.os.Binder) ▪ Service läuft, so lange es “bound clients” gibt
  7. ▪ Alternativ: android.app.IntentService verwenden und Konstruktor + onHandleIntent() implementieren ▪

    Erzeugt Hintergrundthread und arbeitet eine Warteschlange von Jobs ab Service implementieren 5 ▪ Subklasse von android.app.Service erstellen und Callbacks implementieren: ▪ onStartCommand() bzw. onBind() ▪ onCreate() ▪ onDestroy()
  8. Service implementieren (II) 6 ▪ Service in AndroidManifest.xml deklarieren: ▪

    exported macht den Service für andere Applikationen zugänglich <service android:name=".MyService" android:exported="false" </service>
  9. Service benutzen 7 ▪ Service starten: ▪ Context.startService() bzw. Context.bindService()

    ▪ Service stoppen: ▪ Context.stopService() bzw. Context.unbindService() ▪ Mit dem Service kommunizieren: ▪ Bounded Service liefert via ServerConnection einen Binder ▪ Binder erlaubt Kommunikation mit dem Service (auch IPC)