770
Rozdział 19.
Utworzenie usługi
package com.hfad.drogomierz;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class OdometerService extends Service {
@Override
public IBinder onBind(Intent intent) {
// kod tworzący powiązanie usługi
}
}
W powyższym kodzie zaimplementowaliśmy tylko jedną metodę,
onBind()
. Jest ona wywoływana, kiedy komponent, taki jak
aktywność, chce utworzyć powiązanie z usługą. Metoda
onBind()
ma jeden parametr, obiekt
Intent
, i zwraca obiekt typu
IBinder
.
Interfejs
IBinder
służy do tworzenia powiązania usługi
z aktywnością, a jego implementację musimy utworzyć w kodzie
usługi. To właśnie tym interfejsem zajmiemy się w następnym kroku.
Klasa naszej usługi dziedziczy
po klasie Service.
Metoda onBind() jest wywoływana, kiedy
komponent chce utworzyć powiązanie z usługą.
app/src/main
Odometer
Service.java
Drogomierz
java
com.hfad.drogomierz
Utworzenie nowej usługi
Usługę powiązaną tworzy się poprzez rozszerzenie klasy
Service
.
Jest ona bardziej ogólna od klasy
IntentService
, której
użyliśmy w rozdziale 18. do utworzenia usługi uruchomionej.
Rozszerzenie klasy
Service
zapewnia większą elastyczność,
lecz wymaga także napisania bardziej rozbudowanego kodu.
Ponieważ zamierzamy dodać do projektu nową usługę powiązaną,
przejdź w eksploratorze Android Studio do widoku
Project,
w katalogu
app/src/main/java zaznacz pakiet
com.hfad.
drogomierz
, a następnie wybierz z menu głównego opcję
File/New... i w końcu opcję Service (nie IntentService). Tworzonej
usłudze nadaj nazwę
OdometerService
. Usuń zaznaczenie
z pola wyboru
Exported, gdyż trzeba je zaznaczać wyłącznie
w przypadku, gdy do tworzonej usługi mają mieć dostęp usługi
spoza aplikacji. Upewnij się także, że jest zaznaczone pole
wyboru
Enabled; w przeciwnym razie aktywność nie będzie
w stanie uruchomić aplikacji. Następnie zastąp wygenerowany
kod pliku
OdometerService.java tym przedstawionym poniżej
(wyróżnionym pogrubioną czcionką).
Usuń
zaznaczenie
pola wyboru
Exported.
Zaznacz
pole wyboru
Enabled.
Niektóre wersje Android
Studio mogą także pytać
o język źródłowy usługi.
Jeśli będziesz musiał
odpowiedzieć na to pytanie,
wybierz język Java.
¨
OdometerService
¨
MainActivity
¨
Usługi lokalizacyjne
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.