- 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:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </service>
- zawarte w:
<application>
- mogą zawierać:
<intent-filter>
<meta-data>
- description:
- Deklaruje usługę (podklasę
Service
) jako jedną komponentów aplikacji. W przeciwieństwie do czynności usługi nie mają wizualny interfejs użytkownika. Są wykorzystywane do wdrażania długotrwałego działania w tle lub interfejsu API multimedialnego, który może być wywoływany przez inne aplikacji.Wszystkie usługi muszą być reprezentowane przez elementy
<service>
w plik manifestu. Te, które nie zostały zadeklarowane, nie są widoczne przez system i nigdy nie są uruchamiane.Uwaga: w Androidzie 8.0 (poziom interfejsu API 26) i nowszych limity systemowe co może robić aplikacja, która działa w tle. Dla: więcej informacji znajdziesz w przewodnikach na temat limity wykonywania w tle oraz lokalizacja w tle
- atrybuty:
android:description
- Zrozumiały dla użytkownika ciąg tekstowy opisujący usługę. Opis jest ustawiony jako odwołanie do zasobu w postaci ciągu, aby można je było zlokalizować tak samo jak inne ciągi w interfejsie użytkownika.
android:directBootAware
Określa, czy usługa jest rozpoznawana podczas bezpośredniego rozruchu, czyli czy może zostać uruchomiona, zanim użytkownik odblokuje urządzenie.
Uwaga: w trakcie Bezpośredni rozruch, usługa w aplikacja ma dostęp wyłącznie do danych przechowywanych w pamięć chroniona na urządzeniu.
Wartość domyślna to
"false"
.android:enabled
- Określ, czy system może utworzyć instancję usługi. Jest
"true"
, jeśli może być, lub"false"
, jeśli może być. Wartość domyślna jest"true"
.Element
<application>
ma swój własny element Atrybutenabled
, który ma zastosowanie do wszystkich komponentów aplikacji, w tym usług.<application>
i<service>
oba atrybuty muszą mieć wartość"true"
, ponieważ oba te atrybuty są domyślnie włączone, aby usługa została włączona. Jeśli jeden z"false"
, usługa jest wyłączona i nie można jej utworzyć. android:exported
- Czy komponenty innych aplikacji mogą wywoływać
korzystać z usługi ani z niej korzystać. Jeśli może, jest to
"true"
."false"
, jeśli nie. Gdy wartość wynosi"false"
, tylko składniki tej samej aplikacji o tym samym identyfikatorze użytkownika może uruchomić usługę lub utworzyć z nią powiązanie.Wartość domyślna zależy od tego, czy usługa zawiera filtry intencji. Brak jakichkolwiek filtrów oznacza, że można go wywołać tylko przez określenie jej dokładną nazwę klasy. Oznacza to, że usługa jest przeznaczona tylko dla do użytku wewnętrznego w aplikacji, ponieważ inni nie znają nazwy klasy. A więc w przypadku w tym przypadku wartość domyślna to
"false"
. Z drugiej strony, obecność co najmniej jednego filtra oznacza, że usługa jest przeznaczony do użytku zewnętrznego, więc wartość domyślna to"true"
.Ten atrybut nie jest jedynym sposobem ograniczenia udostępniania usługi do innych aplikacji. Możesz też użyć uprawnień, aby ograniczyć liczbę elementów zewnętrznych, które wchodzić w interakcje z usługą. Zobacz
permission
. android:foregroundServiceType
Określa, że usługa jest usługę działających na pierwszym planie, dla konkretnego przypadku użycia. Na przykład usługa działającej na pierwszym planie
"location"
oznacza, że aplikacja pobiera bieżący stan urządzenia lokalizacji, zwykle do kontynuuj działanie inicjowane przez użytkownika związane z lokalizacją urządzenia.Do konkretnego typu usług na pierwszym planie możesz przypisać wiele typów posprzedażna.
android:icon
- Ikona reprezentująca usługę. Ten atrybut jest ustawiony jako
odwołanie do zasobu rysowalnego zawierającego definicję obrazu.
Jeśli nie jest ustawione, ikona określona dla aplikacji
jako całości. Zobacz
<application>
icon
tego elementu.Ikona usługi, ustawiona tutaj lub przez
<application>
, jest również domyślna ikona wszystkich filtrów intencji usługi. Zobacz Element<intent-filter>
icon
. android:isolatedProcess
- Jeśli ustawisz wartość
"true"
, ta usługa będzie działać w ramach specjalnego procesu wyodrębnionego z pozostałej części systemu i nie ma własnych uprawnień. Jedyna komunikacja z tym systemem odbywa się przez interfejs Service API, przy czym i zaczyna rysować. android:label
- Czytelna dla użytkownika nazwa usługi.
Jeśli ten atrybut nie jest ustawiony, etykieta ustawiona dla całej aplikacji to
. Zobacz właściwości elementu
<application>
label
.Etykieta usługi, ustawiona tutaj lub przez
<application>
, jest również etykieta domyślna wszystkich filtrów intencji w usłudze. Zobacz Element<intent-filter>
label
.Etykieta jest ustawiona jako odniesienie do zasobu ciągu, więc i można go zlokalizować tak samo jak inne ciągi w interfejsie. Aby jednak zapewnić wygodę na etapie tworzenia aplikacji, można go też ustawić w postaci nieprzetworzonego ciągu znaków.
android:name
- Nazwa podklasy
Service
, która implementuje i z usługami. Jest to pełna i jednoznaczna nazwa zajęć, taka jak"com.example.project.RoomService"
Jeśli jednak w skrócie pierwszy znak nazwy jest kropką, na przykład".RoomService"
, jest dołączony do nazwy pakietu określonej w tagu<manifest>
.Po opublikowaniu aplikacji nie zmień tę nazwę, chyba że ustawisz
android:exported="false"
.Nie ma wartości domyślnej. Musisz podać nazwę.
android:permission
- Nazwa uprawnienia, którego element potrzebuje, aby uzyskać:
uruchom usługę lub utwórz z nią powiązanie. Jeśli rozmówca
startService()
,bindService()
lubstopService()
nie ma tego uprawnienia, metoda nie działa, a ObiektIntent
nie jest dostarczany do usługi.Jeśli ten atrybut nie jest skonfigurowany, uprawnienia określone przez Element
<application>
permission
ma zastosowanie do usługi. Jeśli żaden z tych atrybutów nie jest ustawiony, usługa nie jest jest chroniony prawem autorskim.Więcej informacji o uprawnieniach: Uprawnienia w omówieniu pliku manifestu aplikacji oraz Wskazówki dotyczące bezpieczeństwa
android:process
- Nazwa procesu, w którym działa usługa. Zwykle
wszystkie komponenty aplikacji są uruchamiane w domyślnym procesie utworzonym dla
aplikacji. Ma taką samą nazwę jak pakiet aplikacji.
Element
<application>
process
może ustawiać inny atrybut domyślny dla wszystkich komponentów. Komponent może jednak zastąpić komponent domyślny z własnym atrybutemprocess
, który umożliwia rozpowszechnianie do zastosowania w wielu procesach.Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (
:
), nowy atrybut prywatny do aplikacji i powstaje wtedy, gdy jest potrzebny, a usługa działa w tym procesie.Jeśli nazwa procesu zaczyna się od małej litery, usługa jest uruchomiona w globalnym procesie dotyczącym tej nazwy, o ile ma do tego uprawnienia. Umożliwia to komponentom w różnych aplikacjach współużytkowanie procesu, co zmniejsza wykorzystanie zasobów.
- zobacz też:
<application>
<activity>
- wprowadzone w:
- Poziom API 1
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: 2024-08-22 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: 2024-08-22 UTC."],[],[]]