0Pricing
Android Academy · Lekcja

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.)
  • setRequiresCharging
  • setRequiresBatteryNotLow
  • setRequiresDeviceIdle
  • setRequiresStorageNotLow

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.Builder ustawia warunki, takie jak dostęp do sieci i ładowanie
  • OneTimeWorkRequestBuilder tworzy żądanie
  • enqueue / enqueueUniqueWork umieszcza 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

  1. Kiedy używać WorkManager
  2. Tworzenie Worker
  3. Ograniczenia i harmonogramowanie
  4. Praca okresowa i łańcuchowa
← Powrót do Android Academy