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

Android Services

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Android Services

Avatar for Daniel Bader

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)