Dokumentacja usług działających na pierwszym planie opisuje ich obecne działanie na Androidzie. Dokumentacja zawiera wskazówki dotyczące sprawdzonych metod w przypadku większości aplikacji, niezależnie od tego, czy są one przeznaczone na najnowszą wersję Androida.
Na tej stronie opisujemy niektóre z najnowszych ważnych zmian dotyczących usług na pierwszym planie oraz ich konsekwencje dla aplikacji, które nie są kierowane na najnowszą wersję platformy Androida. 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 tego, na jaki poziom API są kierowane:
Zadania w tle uruchamiane z usługi na pierwszym planie muszą teraz przestrzegać odpowiednich limitów czasu działania. Obejmuje to zadania zaplanowane bezpośrednio za pomocą
JobScheduler, a także zadania utworzone przez inne biblioteki, takie jak WorkManager czyDownloadManager.Aby przesyłać dane w odpowiedzi na działanie użytkownika, rozważ użycie zadania przesyłania danych inicjowanego przez użytkownika. Te zadania nie są objęte zwykłymi limitami zadań.
Android 15 (poziom 35 interfejsu API)
Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 35 lub wyższym:
- Wprowadziliśmy nowe ograniczenia dotyczące czasu działania usługi
dataSyncna pierwszym planie. Te ograniczenia są opisane w sekcji Zachowanie po przekroczeniu limitu czasu usługi działającej na pierwszym planie. Podobne ograniczenia dotyczą typu usługi działającej na pierwszym planiemediaProcessing(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 z uprawnieniem
SYSTEM_ALERT_WINDOWmogą uruchamiać usługi działające na pierwszym planie z poziomu tła tylko wtedy, gdy mają obecnie widoczne okno nakładki (lub jeśli spełniają jeden z innych warunków wyłączenia z ograniczeń uruchamiania w tle). Wcześniej zwolnienie dla tych aplikacji było szersze.
Android 14 (poziom 34 interfejsu API)
W przypadku aplikacji kierowanych na interfejs API na poziomie 34 lub wyższym obowiązują te wymagania:
- Musisz zadeklarować wszystkie usługi na pierwszym planie wraz z ich typami.
- Aplikacje muszą prosić o odpowiedni typ uprawnień do rodzaju pracy, którą będzie wykonywać usługa na pierwszym planie. Każdy typ usługi na pierwszym planie ma odpowiedni typ uprawnień. Jeśli na przykład aplikacja uruchamia usługę 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 błądSecurityException.
Android 12 (poziom 31 interfejsu API)
W przypadku aplikacji kierowanych na interfejs API na poziomie 31 lub wyższym obowiązują te wymagania:
- Aplikacje nie mogą uruchamiać usług działających na pierwszym planie, gdy działają w tle, z kilkoma wyjątkami. Więcej informacji, w tym o wyjątkach od tej reguły, znajdziesz w artykule Ograniczenia dotyczące uruchamiania usługi działającej na pierwszym planie z poziomu tła.
Android 11 (poziom 30 interfejsu API)
W przypadku aplikacji kierowanych na interfejs API na poziomie 30 lub wyższym obowiązują te wymagania:
- Jeśli usługi działające na pierwszym planie używają aparatu lub mikrofonu, aplikacja musi zadeklarować usługę z odpowiednim typem usługi:
cameralubmicrophone.
Android 10 (poziom 29 interfejsu API)
W przypadku aplikacji kierowanych na interfejs API na poziomie 29 lub wyższym obowiązują te wymagania:
- Jeśli usługi aplikacji działające na pierwszym planie korzystają z informacji o lokalizacji, aplikacja musi zadeklarować usługę z typem usługi
location.
Android 9 (poziom 28 interfejsu API)
Android 9 wprowadza uprawnienie FOREGROUND_SERVICE. Aplikacje działające na Androidzie 9, które korzystają z usług 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ę na pierwszym planie bez uprawnienia FOREGROUND_SERVICE, system zgłasza błąd SecurityException.