Wątki w usłudze WorkManager
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W artykule Pierwsze kroki z WorkManagerem wspomnieliśmy, że usługa WorkManager wykonuje pracę w tle asynchronicznie w Twoim imieniu. Implementacja podstawowa zaspokaja potrzeby większości aplikacji. W przypadku bardziej zaawansowanych przypadków użycia, takich jak prawidłowa obsługa zatrzymywania zadań, dowiedz się więcej o wątkach i równoczesności w WorkManager.
WorkManager udostępnia 4 rodzaje podstawowych elementów pracy:
Worker
to najprostsza implementacja omówiona w poprzednich sekcjach. WorkManager automatycznie uruchamia ją w wątku w tle (który możesz zastąpić). Więcej informacji o wątkach w instancjach Worker
znajdziesz w artykule Threading in Worker.
- Implementacja
CoroutineWorker
jest zalecana dla użytkowników Kotlin. CoroutineWorker
instancja udostępnia funkcję zawieszania na potrzeby pracy w tle. Domyślnie działają one w standardzie Dispatcher
, które możesz dostosować. Więcej informacji o wątkach w instancjach CoroutineWorker
znajdziesz w artykule Threading in CoroutineWorker.
- Implementacja
RxWorker
jest zalecana w przypadku użytkowników RxJava. Narzędzia RxWorkers należy używać, jeśli duża część Twojego kodu asynchronicznego jest modelowana w języku RxJava. Tak jak w przypadku wszystkich projektów RxJava,
możesz wybrać dowolną strategię podziału na wątki. Więcej informacji o wątkach w instancjach RxWorker
znajdziesz w artykule Threading in RxWorker.
ListenableWorker
to klasa podstawowa elementów Worker
, CoroutineWorker
i RxWorker
. Jest on przeznaczony dla programistów Javy, którzy muszą korzystać z asynchronicznych interfejsów API opartych na wywołaniach zwrotnych, takich jak FusedLocationProviderClient
, i nie korzystają z RxJava. Więcej informacji o wątkach w instancjach ListenableWorker
znajdziesz w artykule Threading in ListenableWorker.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-04-02 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Brak potrzebnych mi informacji"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nieaktualne treści"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem z tłumaczeniem"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem z przykładami/kodem"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Inne"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Łatwo zrozumieć"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Rozwiązało to mój problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Inne"
}]
{"lastModified": "Ostatnia aktualizacja: 2024-04-02 UTC."}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-04-02 UTC."]]