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:foregroundServiceTypemediaProcessing- 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
mediaProcessingusł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.