W Androidzie 15 wprowadzamy te zmiany w typach usług na pierwszym planie:
Przetwarzane materiały
- Typ usługi na pierwszym planie do zadeklarowania w pliku manifestu w sekcji
android:foregroundServiceType
mediaProcessing
- Uprawnienia do zadeklarowania w pliku manifestu
FOREGROUND_SERVICE_MEDIA_PROCESSING
- stała wartość przekazywana do
startForeground()
, FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- Wymagania wstępne środowiska wykonawczego
- Brak
- Opis
Usługa do wykonywania czasochłonnych operacji na zasobach multimedialnych, takich jak konwertowanie multimediów na różne formaty. System zezwala tej usłudze na ograniczony czas działania. W normalnych okolicznościach limit czasu wynosi 6 godzin na 24 godziny. Ten limit jest wspólny dla wszystkich
mediaProcessing
usług na pierwszym planie w aplikacji.Aplikacja powinna ręcznie zatrzymać usługę przetwarzania multimediów w takich sytuacjach:
- Gdy operacja transkodowania zostanie zakończona lub osiągnie stan błędu, usługa powinna wywołać
Service.stopForeground()
iService.stopSelf()
, aby całkowicie zatrzymać usługę.
- Gdy operacja transkodowania zostanie zakończona lub osiągnie stan błędu, usługa powinna wywołać
Po upływie limitu czasu system wywołuje metodę
Service.onTimeout(int, int)
usługi. W tym momencie usługa ma kilka sekund na wywołanie funkcjiService.stopSelf()
. Jeśli usługa nie wywołuje funkcjiService.stopSelf()
, wystąpi ANR z komunikatem o błędzie: „Usługa na pierwszym planie <fgs_type> nie zatrzymała się w czasie swojego limitu czasu: <component_name>”.Uwaga: funkcja
Service.onTimeout(int, int)
jest niedostępna na Androidzie 14 lub starszym. Na urządzeniach z tymi wersjami, jeśli usługa przetwarzania multimediów osiągnie limit czasu, system natychmiast przeniesie aplikację do pamięci podręcznej. Z tego powodu aplikacja nie powinna czekać na powiadomienie o przekroczeniu limitu czasu. Zamiast tego należy zakończyć usługę na pierwszym planie lub jak najszybciej zmienić ją na usługę działającą w tle.
Aparat
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi działających na pierwszym planie aparatu z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.
Synchronizowanie danych
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi synchronizacji danych na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.
Odtwarzanie multimediów
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi odtwarzania multimediów na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.
Wyświetlanie multimediów
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi dotyczącej wyświetlania multimediów na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.
mikrofon
Aplikacje kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego nie mogą uruchamiać usługi na pierwszym planie z mikrofonem z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.
Rozmowa telefoniczna
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi na pierwszym planie dotyczącej połączeń telefonicznych z poziomu odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące BOOT_COMPLETED
odbiorników transmisji danych, które uruchamiają usługi na pierwszym planie.