Ograniczenia i harmonogramowanie
Uruchamiaj pracę we właściwych warunkach
Ograniczenia i harmonogramowanie to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.
Ograniczenia i planowanie
Worker definiuje, co należy zrobić. Obiekt WorkRequest definiuje, kiedy i pod jakimi warunkami praca zostanie uruchomiona. Tworzy się żądanie, dołącza ograniczenia i umieszcza je w kolejce.
Czym są ograniczenia
Ograniczenia to warunki, które muszą być spełnione przed uruchomieniem pracy, na przykład dostęp do sieci lub podłączenie urządzenia do ładowania. WorkManager czeka, aż warunki zostaną spełnione.
Tworzenie ograniczeń
Użyj Constraints.Builder, aby zadeklarować wymagania.
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresCharging(true)
.build()Typowe rodzaje ograniczeń
Często używane ograniczenia to:
setRequiredNetworkType(CONNECTED, UNMETERED itd.)setRequiresChargingsetRequiresBatteryNotLowsetRequiresDeviceIdlesetRequiresStorageNotLow
Tworzenie elementu OneTimeWorkRequest
W przypadku pracy uruchamianej tylko raz należy użyć OneTimeWorkRequestBuilder, parametryzując go klasą własnego workera i dołączając ograniczenia.
val request = OneTimeWorkRequestBuilder<UploadWorker>()
.setConstraints(constraints)
.build()Przekazywanie danych wejściowych
Dołącz dane wejściowe do żądania za pomocą setInputData; worker odczyta je przez inputData.
val request = OneTimeWorkRequestBuilder<UploadWorker>()
.setInputData(workDataOf("user_id" to "42"))
.setConstraints(constraints)
.build()Umieszczanie pracy w kolejce
Pobierz instancję WorkManager i wywołaj enqueue. WorkManager zapisze żądanie i uruchomi je po spełnieniu ograniczeń.
WorkManager.getInstance(context).enqueue(request)Zasada opóźnień ponawiania
Gdy worker zwróci retry(), WorkManager odczeka przed ponowną próbą. Strategię należy skonfigurować za pomocą setBackoffCriteria, wybierając opóźnienie liniowe lub wykładnicze.
val request = OneTimeWorkRequestBuilder<UploadWorker>()
.setBackoffCriteria(
BackoffPolicy.EXPONENTIAL,
10, TimeUnit.SECONDS
)
.build()Unikatowa praca
Aby uniknąć planowania zduplikowanych zadań, użyj enqueueUniqueWork z nazwą i zasadą rozwiązywania konfliktów (KEEP, REPLACE lub APPEND).
WorkManager.getInstance(context).enqueueUniqueWork(
"sync_job",
ExistingWorkPolicy.KEEP,
request
)Obserwowanie stanu pracy
Stan żądania (ENQUEUED, RUNNING, SUCCEEDED, FAILED) można obserwować za pomocą getWorkInfoByIdFlow lub LiveData, co jest przydatne do wyświetlania postępu w interfejsie użytkownika.
WorkManager.getInstance(context)
.getWorkInfoByIdFlow(request.id)
.collect { info -> /* react to info.state */ }Dodawanie tagów
Oznaczaj żądania tagiem za pomocą addTag, aby później wyszukiwać lub anulować grupy powiązanych prac według tagu, na przykład anulować jednocześnie wszystkie prace typu „upload”.
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat ograniczeń i planowania.
Podsumowanie
Zaplanował(a) Pan/Pani pracę z ograniczeniami:
Constraints.Builderustawia warunki, takie jak dostęp do sieci i ładowanieOneTimeWorkRequestBuildertworzy żądanieenqueue/enqueueUniqueWorkumieszcza je w kolejce- Konfigurowano opóźnienia ponawiania, obserwowano stan i oznaczano pracę tagami
Dalej: praca okresowa i praca połączona w łańcuch.
Często zadawane pytania
Czy lekcja „Ograniczenia i harmonogramowanie” jest bezpłatna?
Tak — pełny tekst „Ograniczenia i harmonogramowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Ograniczenia i harmonogramowanie”?
Uruchamiaj pracę we właściwych warunkach Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Ograniczenia i harmonogramowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Kiedy używać WorkManager
- Tworzenie Worker
- Ograniczenia i harmonogramowanie
- Praca okresowa i łańcuchowa