Wprowadzamy w Androidzie 15 poniższe zmiany dotyczące usług na pierwszym planie.
Przetwarzane materiały
- Typ usługi na pierwszym planie do zadeklarowania w pliku manifestu w domenie
android:foregroundServiceType
mediaProcessing
- Uprawnienia do zadeklarowania w pliku manifestu
FOREGROUND_SERVICE_MEDIA_PROCESSING
- Stała do przekazywania do:
startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- Wymagania wstępne środowiska wykonawczego
- Brak
- Opis
Usługa do wykonywania czasochłonnych operacji na zasobach medialnych, takich jak konwersja multimediów na różne formaty. System zezwala na uruchomienie tej usługi przez ograniczony czas. W normalnych okolicznościach ten limit czasu wynosi 6 godzin z każdej 24 godzin. Ten limit jest wspólny dla wszystkich działających na pierwszym planie usług
mediaProcessing
.Aplikacja powinna ręcznie zatrzymać usługę przetwarzania multimediów w tym scenariuszu:
- Gdy operacja transkodowania zakończy się lub dojdzie do błędu, wywołaj usługę
Service.stopForeground()
iService.stopSelf()
, aby całkowicie zatrzymać usługę.
- Gdy operacja transkodowania zakończy się lub dojdzie do błędu, wywołaj usługę
Po upływie tego czasu system wywołuje metodę
Service.onTimeout(int, int)
usługi. W tej chwili usługa ma kilka sekund na wywołanieService.stopSelf()
. Jeśli usługa nie wywołaService.stopSelf()
, wystąpi błąd ANR z tym komunikatem o błędzie: „Usługa na pierwszym planie <fgs_type> nie została zatrzymana w ramach swojego limitu czasu: <component_name>”.Uwaga: usługa
Service.onTimeout(int, int)
jest niedostępna na urządzeniach z Androidem 14 lub starszym. Gdy usługa przetwarzania multimediów osiągnie limit czasu na urządzeniach z tymi wersjami, system natychmiast zapisze aplikację w pamięci podręcznej. Z tego powodu aplikacja nie powinna czekać na powiadomienie o przekroczeniu limitu czasu. Zamiast tego jak najszybciej powinien zakończyć działanie usługi na pierwszym planie lub zmienić ją w usługę działającą w tle.
Aparat
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi kamery na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące odbiorników (BOOT_COMPLETED
) uruchamiających 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 odbiorników (BOOT_COMPLETED
) uruchamiających 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 odbiorników (BOOT_COMPLETED
) uruchamiających usługi na pierwszym planie.
Wyświetlanie multimediów
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi wyświetlania multimediów na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące odbiorników (BOOT_COMPLETED
) uruchamiających usługi na pierwszym planie.
Mikrofon
Aplikacje kierowane na Androida 14 (poziom API 34) lub nowszego nie mogą uruchamiać usługi mikrofonu na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące odbiorników (BOOT_COMPLETED
) uruchamiających usługi na pierwszym planie.
Rozmowa telefoniczna
Aplikacje kierowane na Androida 15 lub nowszego nie mogą uruchamiać usługi połączeń telefonicznych na pierwszym planie z odbiornika BOOT_COMPLETED
.
Więcej informacji znajdziesz w artykule Ograniczenia dotyczące odbiorników (BOOT_COMPLETED
) uruchamiających usługi na pierwszym planie.