Dokumentacja dotycząca usług działających na pierwszym planie opisuje bieżące działanie usług działających na pierwszym planie w Androidzie. Zawiera ona wskazówki dotyczące sprawdzonych metod w przypadku większości aplikacji, niezależnie od tego, czy są one kierowane na najnowszą wersję Androida.
Ta strona opisuje niektóre z najnowszych ważnych zmian w usługach działających na pierwszym planie oraz ich wpływ na aplikacje, które nie są kierowane na najnowszą wersję platformy Android. W wielu przypadkach sprawdzone metody, które były opcjonalne w przypadku aplikacji kierowanych na niższe poziomy interfejsu API, stają się obowiązkowe w przypadku aplikacji kierowanych na wyższe poziomy interfejsu API.
Android 16 (poziom 36 interfejsu API)
Poniższe zmiany dotyczą aplikacji działających na Androidzie 16 lub nowszym, niezależnie od poziomu interfejsu API, na który są kierowane:
Zadania w tle uruchamiane przez usługę działającą na pierwszym planie muszą teraz przestrzegać odpowiednich limitów czasu działania. Dotyczy to zadań zaplanowanych bezpośrednio za pomocą
JobScheduler, a także zadań utworzonych przez inne biblioteki, takie jak WorkManager czyDownloadManager.Aby przesyłać dane w odpowiedzi na działanie użytkownika, rozważ użycie a zadania przesyłania danych zainicjowanego przez użytkownika. Te zadania są wyłączone z normalnych limitów zadań.
Android 15 (poziom 35 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 35 lub wyższym:
- Obowiązują nowe ograniczenia dotyczące czasu działania usługi działającej na pierwszym planie
dataSync. Te ograniczenia są opisane w sekcji Zachowanie usługi działającej na pierwszym planie po przekroczeniu limitu czasu behavior. Podobne ograniczenia dotyczą usługi działającej na pierwszym planie typumediaProcessing(nowość w Androidzie 15). - Usługi działające na pierwszym planie
BOOT_COMPLETEDnie mogą już uruchamiać niektórych usług działających na pierwszym planie. - Aplikacje, które mają uprawnienie
SYSTEM_ALERT_WINDOW, mogą uruchamiać usługi działające na pierwszym planie w tle tylko wtedy, gdy mają obecnie widoczne okno nakładki (lub jeśli spełniają jeden z innych wyjątków od ograniczeń dotyczących uruchamiania w tle start restrictions). Wcześniej wyjątek dla tych aplikacji był szerszy.
Android 14 (poziom 34 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 34 lub wyższym:
- Musisz zadeklarować wszystkie usługi działające na pierwszym planie wraz z ich typami usług.
- Aplikacje muszą prosić o odpowiedni typ uprawnień w zależności od rodzaju pracy, jaką będzie wykonywać usługa działająca na pierwszym planie. Każdy typ usługi działającej na pierwszym planie
ma odpowiadający mu typ uprawnień. Jeśli na przykład aplikacja uruchamia
usługę działającą na pierwszym planie, która korzysta z aparatu, musisz poprosić o uprawnienia
FOREGROUND_SERVICEiFOREGROUND_SERVICE_CAMERA. Jeśli aplikacja jest kierowana na interfejs API na poziomie 34 lub wyższym i nie prosi o odpowiednie uprawnienia, system zgłasza wyjątekSecurityException.
Android 12 (poziom 31 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 31 lub wyższym:
- Aplikacje nie mogą uruchamiać usług działających na pierwszym planie, gdy działają w tle, z kilkoma wyjątkami. Więcej informacji oraz informacje o wyjątkach od tej reguły znajdziesz w artykule Ograniczenia dotyczące uruchamiania usługi działającej na pierwszym planie w tle.
Android 11 (poziom 30 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 30 lub wyższym:
- Jeśli usługi działające na pierwszym planie w aplikacji korzystają z aparatu lub mikrofonu, aplikacja musi
zadeklarować usługę odpowiednio z typem
cameralubmicrophone.
Android 10 (poziom 29 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 29 lub wyższym:
- Jeśli usługi działające na pierwszym planie w aplikacji korzystają z informacji o lokalizacji, aplikacja musi
zadeklarować usługę z typem
location.
Android 9 (poziom 28 interfejsu API)
W Androidzie 9 wprowadzono uprawnienie
FOREGROUND_SERVICE. Aplikacje działające na Androidzie 9, które korzystają z usług działających na pierwszym planie, muszą mieć to uprawnienie.
Jeśli aplikacja kierowana na interfejs API na poziomie 28 lub wyższym próbuje
utworzyć usługę działającą na pierwszym planie bez proszenia o FOREGROUND_SERVICE
uprawnienie, system zgłasza SecurityException.