- składnia:
<service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:foregroundServiceType=["camera" | "connectedDevice" | "dataSync" | "health" | "location" | "mediaPlayback" | "mediaProjection" | "microphone" | "phoneCall" | "remoteMessaging" | "shortService" | "specialUse" | "systemExempted"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" android:stopWithTask=["true" | "false"]> ... </service>
- zawiera się w:
<application>- może zawierać:
<intent-filter><meta-data><property>- opis:
- Deklaruje usługę, podklasę
Service, jako jeden z komponentów aplikacji. W przeciwieństwie do aktywności usługi nie mają wizualnego interfejsu użytkownika. Służą do implementowania długotrwałych operacji w tle lub rozbudowanego interfejsu API komunikacji, który może być wywoływany przez inne aplikacje.Wszystkie usługi muszą być reprezentowane przez
<service>elementy w pliku manifestu. Usługi, które nie są tam zadeklarowane, nie są widoczne dla systemu i nigdy nie są uruchamiane.Uwaga: w Androidzie 8.0 (poziom interfejsu API 26) i nowszych system ogranicza możliwości aplikacji działającej w tle. Więcej informacji znajdziesz w przewodnikach dotyczących limitów wykonywania w tle i limitów lokalizacji w tle.
- atrybuty:
android:description- Zrozumiały dla użytkownika ciąg tekstowy opisujący usługę. Opis jest ustawiany jako a odwołanie do zasobu ciągu tekstowego, dzięki czemu można go zlokalizować tak jak inne ciągi tekstowe w interfejsie użytkownika.
android:directBootAwareOkreśla, czy usługa jest świadoma bezpośredniego uruchamiania, czyli czy może działać, zanim użytkownik odblokuje urządzenie.
Uwaga: podczas bezpośredniego uruchamiania usługa w aplikacji może uzyskiwać dostęp tylko do danych przechowywanych w pamięci chronionej przez urządzenie.
Wartością domyślną jest
"false".android:enabled- Określa, czy system może utworzyć instancję usługi. Wartość
"true"oznacza, że może, a"false"– że nie może. Wartością domyślną jest"true".Element
<application>ma własnyenabledatrybut, który dotyczy wszystkich komponentów aplikacji, w tym usług. Aby usługa była włączona, atrybuty<application>i<service>muszą mieć wartość"true"(domyślnie tak jest). Jeśli którykolwiek z nich ma wartość"false", usługa jest wyłączona i nie można utworzyć jej instancji. android:exported- Określa, czy komponenty innych aplikacji mogą wywoływać usługę lub wchodzić z nią w interakcję. Wartość
"true"oznacza, że mogą, a"false"– że nie mogą. Gdy wartość to"false", tylko komponenty tej samej aplikacji lub aplikacji o tym samym identyfikatorze użytkownika mogą uruchamiać usługę lub się z nią łączyć.Wartość domyślna zależy od tego, czy usługa zawiera filtry intencji. Brak filtrów oznacza, że można ją wywołać tylko przez podanie dokładnej nazwy klasy. Oznacza to, że usługa jest przeznaczona tylko do użytku wewnętrznego w aplikacji, ponieważ inne aplikacje nie znają nazwy klasy. W tym przypadku wartością domyślną jest
"false". Z drugiej strony, obecność co najmniej 1 filtra oznacza, że usługa jest przeznaczona do użytku zewnętrznego, więc wartością domyślną jest"true".Ten atrybut nie jest jedynym sposobem na ograniczenie dostępu do usługi dla innych aplikacji. Możesz też użyć uprawnienia, aby ograniczyć podmioty zewnętrzne, które mogą wchodzić w interakcję z usługą. Zobacz atrybut
permission. android:foregroundServiceTypeOkreśla, że usługa jest usługą działającą na pierwszym planie, która spełnia określony przypadek użycia. Na przykład typ usługi działającej na pierwszym planie
"location"wskazuje, że aplikacja pobiera bieżącą lokalizację urządzenia, zwykle w celu kontynuowania działania zainicjowanego przez użytkownika związanego z lokalizacją urządzenia.Do konkretnej usługi możesz przypisać kilka typów usług działających na pierwszym planie.
android:iconIkona reprezentująca usługę. Ten atrybut jest ustawiany jako odwołanie do zasobu graficznego zawierającego definicję obrazu. Jeśli nie jest ustawiony, używana jest ikona określona dla całej aplikacji. Zobacz atrybut
iconelementu<application>.Ikona usługi, niezależnie od tego, czy jest ustawiona tutaj, czy przez element
<application>, jest też domyślną ikoną wszystkich filtrów intencji usługi. Zobacz atrybuticonelementu<intent-filter>.android:intentMatchingFlags-
Użyj tego atrybutu, aby dostosować sposób, w jaki system dopasowuje przychodzące intencje do komponentów aplikacji. Domyślnie nie są stosowane żadne specjalne reguły dopasowywania.
Wartość ustawiona w tagu
<service>zastępuje wartość ustawioną w tagu<application>.Wartość musi być jedną lub kilkoma z tych flag rozdzielonych znakiem „
|”:Flaga Opis noneWyłącza wszystkie specjalne reguły dopasowywania przychodzących intencji. Jeśli określisz kilka flag, sprzeczne wartości zostaną rozwiązane przez nadanie priorytetu fladze none.enforceIntentFilterWymusza bardziej rygorystyczne dopasowywanie przychodzących intencji:
- Jawne intencje muszą pasować do filtra intencji komponentu docelowego.
- Intencje bez działania nie pasują do żadnego filtra intencji.
allowNullActionZmiękcza reguły dopasowywania, aby umożliwić dopasowywanie intencji bez działania. Ta flaga jest używana w połączeniu z
enforceIntentFilter, aby uzyskać to działanie:- Jawne intencje muszą pasować do filtra intencji komponentu docelowego.
- Intencje bez działania mogą pasować do dowolnego filtra intencji.
Więcej informacji znajdziesz w sekcji Bezpieczniejsze intencje w artykule Zmiany sposobu działania w Androidzie 16 (poziom interfejsu API 36).
android:isolatedProcess- Jeśli ustawisz wartość
"true", ta usługa będzie działać w specjalnym procesie, który jest odizolowany od reszty systemu i nie ma własnych uprawnień. Komunikacja z nim odbywa się tylko za pomocą interfejsu API usługi, przez łączenie i uruchamianie. android:label- Zrozumiała dla użytkownika nazwa usługi.
Jeśli ten atrybut nie jest ustawiony, używana jest etykieta ustawiona dla całej aplikacji. Zobacz atrybut
labelelementu<application>.Etykieta usługi, niezależnie od tego, czy jest ustawiona tutaj, czy przez element
<application>, jest też domyślną etykietą wszystkich filtrów intencji usługi. Zobacz atrybutlabelelementu<intent-filter>.Etykieta jest ustawiana jako odwołanie do zasobu ciągu tekstowego, dzięki czemu można ją zlokalizować tak jak inne ciągi tekstowe w interfejsie użytkownika. Jednak dla wygody podczas tworzenia aplikacji można ją też ustawić jako surowy ciąg tekstowy.
android:name- Nazwa podklasy
Service, która implementuje usługę. Jest to pełna nazwa klasy, np."com.example.project.RoomService". Jeśli jednak pierwszy znak nazwy to kropka, np.".RoomService", jest ona dołączana do nazwy pakietu określonej w elemencie<manifest>.Po opublikowaniu aplikacji nie zmieniaj tej nazwy, chyba że ustawisz
android:exported="false".Nie ma wartości domyślnej. Nazwa musi być określona.
android:permission- Nazwa uprawnienia, które musi mieć podmiot, aby uruchomić usługę lub się z nią połączyć. Jeśli wywołujący
startService(),bindService()lubstopService()nie ma tego uprawnienia, metoda nie działa, a obiektIntentnie jest dostarczany do usługi.Jeśli ten atrybut nie jest ustawiony, do usługi stosowane jest uprawnienie ustawione przez element
<application>'spermissionatrybut. Jeśli żaden z tych atrybutów nie jest ustawiony, usługa nie jest chroniona uprawnieniem.Więcej informacji o uprawnieniach znajdziesz w sekcji Uprawnienia w artykule Omówienie manifestu aplikacji oraz w Wytycznych dotyczących bezpieczeństwa.
android:process- Nazwa procesu, w którym działa usługa. Zwykle wszystkie komponenty aplikacji działają w domyślnym procesie utworzonym dla aplikacji. Ma on taką samą nazwę jak pakiet aplikacji. Atrybut
<application>elementuprocessmoże ustawić inny domyślny proces dla wszystkich komponentów. Komponent może jednak zastąpić domyślny proces własnym atrybutemprocess, co pozwala rozdzielić aplikację na kilka procesów.Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (
:), w razie potrzeby tworzony jest nowy proces prywatny dla aplikacji, w którym działa usługa.Jeśli nazwa procesu zaczyna się od małej litery, usługa działa w globalnym procesie o tej nazwie, pod warunkiem że ma do tego uprawnienia. Dzięki temu komponenty w różnych aplikacjach mogą współdzielić proces, co zmniejsza zużycie zasobów.
android:stopWithTask- Jeśli ustawisz wartość
"true", system automatycznie zatrzyma usługę, gdy użytkownik usunie zadanie, które ma korzenie w aktywności należącej do aplikacji. Wartością domyślną jest"false".
- zobacz też:
<application><activity>- wprowadzona w grze:
- Poziom interfejsu API 1
<usługa>
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2026-07-03 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2026-07-03 UTC."],[],[]]