<usługa>

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 Atrybut enabled, 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() lub stopService() nie ma tego uprawnienia, metoda nie działa, a Obiekt Intent 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 atrybutem process, 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