Zmiany w usługach na pierwszym planie

Dokumentacja usług na pierwszym planie opisuje bieżące działanie usług na pierwszym planie w 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 najważniejsze zmiany wprowadzone ostatnio w usługach 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, które działają 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 czy DownloadManager.

    Jeśli chcesz przesyłać dane w odpowiedzi na działanie użytkownika, rozważ użycie zadania przesyłania danych inicjowanego przez użytkownika. Te miejsca pracy są zwolnione z limitów zwykłych miejsc pracy.

Android 15 (poziom 35 interfejsu API)

Poniższe wymagania dotyczą aplikacji kierowanych na interfejs API na poziomie 35 lub wyższym:

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ń w zależności od rodzaju pracy, jaką będzie wykonywać usługa na pierwszym planie. Każdy typ usługi na pierwszym planie ma odpowiedni typ uprawnienia. 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_SERVICEFOREGROUND_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łąd SecurityException.

Android 12 (poziom 31 interfejsu API)

W przypadku aplikacji kierowanych na interfejs API na poziomie 31 lub wyższym obowiązują te wymagania:

Android 11 (poziom 30 interfejsu API)

W przypadku aplikacji kierowanych na interfejs API na poziomie 30 lub wyższym obowiązują te wymagania:

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 na pierwszym planie w aplikacji korzystają z informacji o lokalizacji, aplikacja musi zadeklarować usługę z typem usługi 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ę na pierwszym planie bez wysyłania zapytania o FOREGROUND_SERVICE uprawnienie, system zgłasza SecurityException.