Alternatywy dla usług działających na pierwszym planie do synchronizacji danych

Często dostępne są lepsze alternatywy niż usługi na pierwszym planie dataSync. Ten dokument pomoże Ci znaleźć najlepszą alternatywę w Twoim przypadku.

Przypadki użycia migracji

W tej sekcji opisujemy kilka typowych sytuacji, w których aplikacje mogą obecnie używać usługi na pierwszym planie (dataSync), oraz zalecane przez nas alternatywy.

Przenoszenie danych przez sieć
Jeśli przenoszenie zostało zainicjowane przez użytkownika oraz chcesz informować go o postępach, użyj interfejsów API do przenoszenia danych inicjowanych przez użytkownika. W przeciwnym razie użyj WorkManagera.
Przenoszenie danych na urządzenie lokalne i z niego
Użyj określonego interfejsu API, jeśli jest dostępny (np. menedżera urządzeń towarzyszących). W przeciwnym razie użyj usługi connectedDevice na pierwszym planie.
Transkodowanie multimediów
Użyj nowego typu usługi na pierwszym planie mediaProcessing.
Wykonywanie krótkiego, krytycznego zadania
Użyj usługi shortService na pierwszym planie.
Przetwarzanie plików (np. przesyłanie danych na kartę SD i z niej, zmienianie rozmiaru treści oraz szyfrowanie lub odszyfrowywanie danych)
Jeśli zadanie można wykonać w niecałe 3 minuty, użyj usługi shortService na pierwszym planie. W przeciwnym razie użyj WorkManagera.

Użyj interfejsów API do przenoszenia danych inicjowanych przez użytkownika

Jeśli aplikacja musi przenieść dane na serwer zdalny, możesz użyć nowych interfejsów API do przenoszenia danych inicjowanych przez użytkownika. Te interfejsy API są odpowiednie, jeśli są spełnione te warunki:

  • Użytkownik rozpoczął przenoszenie danych
  • Musisz informować użytkownika o postępach przenoszenia danych
  • Przerywanie przesyłania przez system może negatywnie wpłynąć na wrażenia użytkownika

Jeśli którykolwiek z tych warunków nie jest spełniony, użyj WorkManager.

Na przykład aplikacja do multimediów może umożliwiać użytkownikom pobieranie albumów do odtwarzania lokalnego. Jeśli użytkownik chce pobrać playlistę i od razu ją odtworzyć, możesz skorzystać z interfejsów API do przenoszenia danych inicjowanych przez użytkownika. Z drugiej strony, jeśli użytkownik chce, aby pobrana playlista była okresowo aktualizowana w tle bez ingerencji użytkownika, lepszym wyborem będzie narzędzie WorkManager.

Więcej informacji znajdziesz w dokumentacji dotyczącej przenoszenia usług działających na pierwszym planie do zadań transferu danych inicjowanych przez użytkownika.

Korzystanie z WorkManagera

W większości przypadków WorkManager sprawdza się najlepiej w przypadku planowania pracy. Musisz zaprojektować zadania w taki sposób, aby system mógł je przerwać lub odroczyć. Więcej informacji znajdziesz w dokumentacji WorkManagera.

Oto kilka uwag, które mogą być przydatne podczas migracji z usługi na pierwszym planie do usługi WorkManager:

  • Jeśli chcesz przeprowadzić pracę jak najszybciej, możesz zaplanować przyspieszone żądanie pracy. Ta opcja jest szczególnie przydatna, gdy planujesz pracę w odpowiedzi na transmisję, alarm dokładny lub wiadomość o wysokim priorytecie.
  • Jeśli chcesz, aby materiały były wykonywane okresowo, możesz zaplanować prace okresowe. Okresowe żądanie pracy pozwala przybliżyć częstotliwość wykonywania zadania, ale nie gwarantuje konkretnego czasu. Dzięki temu system może planować żądania robocze z różnych aplikacji, aby zrównoważyć zapotrzebowanie na urządzenie.
  • Aby określić odpowiednie okoliczności do uruchomienia zadania, musisz określić ograniczenia związane z pracą. Jeśli np. aplikacja ma pobierać zasoby, które nie są pilne, możesz określić, że zadanie ma być uruchamiane podczas ładowania urządzenia i gdy urządzenie jest połączone z siecią bez pomiaru użycia danych. WorkManager może wtedy uruchamiać Twoje zadanie w czasie, gdy równoważy obciążenie systemu.
  • W razie potrzeby anulowanie zadania i ponawianie go ponownie w usłudze WorkManager. Użytkownik może na przykład wyłączyć urządzenie podczas wykonywania zadania. System może następnie ponowić próbę wykonania zadania, gdy urządzenie będzie ponownie dostępne. Pamiętaj, aby zaprojektować i przetestować przepływ pracy, aby mieć pewność, że cykl anulowania i ponowienia działa prawidłowo.

Użyj bardziej szczegółowego typu usługi na pierwszym planie

Jeśli nie możesz przejść na inny sposób pracy w tle, być może i tak musisz skorzystać z usługi na pierwszym planie. W takim przypadku musisz znaleźć odpowiedni typ usługi, którego chcesz użyć zamiast dataSync. Ponieważ Twój kod korzysta już z usługi na pierwszym planie, migracja jest prosta: musisz tylko wybrać odpowiedni typ usługi i sprawdzić, czy aplikacja spełnia jej wymagania.

Jak zawsze, gdy rozważasz korzystanie z usługi na pierwszym planie, zastanów się, czy istnieje lepszy alternatywny interfejs API dostosowany do Twojego przypadku użycia.

Korzystanie z krótkoterminowej usługi na pierwszym planie

Jeśli Twoja aplikacja musi wykonać krótkie, kluczowe zadanie, najlepszą opcją może być usługa na pierwszym planie shortService. Oto kilka sytuacji, w których usługa shortService na pierwszym planie może być odpowiednia:

  • Użytkownik inicjuje działanie (np. synchronizuje dane z serwerem) i chcesz mieć pewność, że zostanie ona zakończona nawet wtedy, gdy od razu przeniesie aplikację w tle.
  • Zapisywanie informacji w pamięci trwałej.
  • szyfrowanie i odszyfrowywanie informacji,

Wszystkie informacje znajdziesz w dokumentacji shortService.

Korzystanie z usługi na pierwszym planie połączonego urządzenia

Jeśli musisz przenieść dane na inne urządzenie lokalne, możesz użyć usługi na pierwszym planie connectedDevice. Oto kilka typowych sytuacji, w których może być to konieczne:

  • Komunikowanie się z urządzeniem Bluetooth, np. słuchawkami czy smartwatchem
  • Przesyłanie danych na urządzenie podłączone lokalnie za pomocą połączenia USB, NFC lub lokalnego połączenia z internetem

Jednak w takich sytuacjach do łączenia się z urządzeniem możesz użyć menedżera urządzeń towarzyszących, zamiast korzystać z usługi na pierwszym planie. Jeśli w Twoim przypadku dostępny jest specjalny interfejs API, zwykle jest on lepszym rozwiązaniem niż korzystanie z usługi na pierwszym planie.

Korzystanie z nowej usługi przetwarzania multimediów na pierwszym planie

Jeśli chcesz przetworzyć dane multimedialne, możesz użyć nowej usługi mediaProcessing na pierwszym planie. Ten typ usługi jest dostępny, jeśli Twoja aplikacja jest kierowana na Androida 15 lub nowszego. Ten typ usługi jest odpowiedni np. wtedy, gdy Twoja aplikacja musi transkodować multimedia z jednego formatu na inny, aby je odtwarzać. Więcej informacji znajdziesz w dokumentacji usługi przetwarzania multimediów na pierwszym planie.

Dodatkowe materiały

Więcej informacji o tej zmianie dotyczącej usług na pierwszym planie znajdziesz w tych dodatkowych materiałach: