Jak mogę anulować JobIntentService? W dokumentach nie widzę żadnych metod, poza tym może z metody API JobSheduler
i metody Context#stopService(...)
, której nie jestem pewien, czy to właściwa metoda.Jak anulować JobIntentService
Odpowiedz
JobIntentService
przynosi tylko IntentService
do Android 8+ że jest bardziej rygorystyczne o usługach tła. Działa jak stary IntentService
s na urządzeniach ze starszymi wersjami Androida.
IntentService
nigdy nie był przeznaczony do anulowania, stąd brak jakiegokolwiek API do anulowania JobIntentService
.
Dlatego JobIntenService
należy używać wyłącznie do pracy, która nie musi być anulowana. Zauważ, że JobIntentService
może być nadal używany do pracy, która może zawodzić, a w konsekwencji zostać przerwana.
pracy, które mogą być anulowane powinny być wykonywane albo:
Activity
(lub jegoViewModel
) do pracy krótki czas trwania- JobService (używając Firebase Praca Dyspozytor lub Job Scheduler jeśli minSdk jest 21)
- usługa zwyczaj planie
Przed wprowadzeniem systemu Android 8.0, JobIntentService
jest zaimplementowany jako IntentService
. IntentService
nie zatrzymuje się ani nie przyjmuje żadnych innych żądań za pomocą jakiegoś działania, dopóki jego metoda onHandleIntent
nie zakończy poprzedniego żądania. stopService
() nie będzie wywoływana, dopóki zadanie nie zostanie zakończone. I jest wywoływana automatycznie, gdy jest. To jest funkcja z IntentService
Ale podobne pytanie już zostało udzielone tutaj, odnosząc się do IntentServices
, mam nadzieję, że to pomaga.
również sprawdzić android developers
- 1. Jak anulować/anulować żądanie jQuery AJAX?
- 2. Jak anulować handler.postDelayed?
- 3. Jak anulować anulowanieToken
- 4. Jak anulować Alamofire.upload
- 5. Jak anulować żądanie http
- 6. Jak anulować UIWebView?
- 7. Jak anulować zatwierdzenie?
- 8. Jak anulować krycie elementu potomnego?
- 9. Jak anulować zdarzenie ComboBox SelectionChanged?
- 10. Jak anulować zadanie w oczekiwaniu?
- 11. Jak anulować alarm z AlarmManager
- 12. Jak anulować wykonanie timera sprężynowego
- 13. iPhone jak anulować zatrzymania performSelector
- 14. Jak mogę anulować żądanie Ajax?
- 15. jak zatrzymać/anulować android CountDownTimer
- 16. Jak mogę anulować zależności NSOperation?
- 17. Jak anulować Files.copy() w Javie?
- 18. Jak anulować żądanie w BeforeSendRequest
- 19. IEx - Jak anulować polecenie multiline?
- 20. C# WaitHandle anulować WaitAll
- 21. Knockout - anulować zmianę zdarzenia?
- 22. Jak anulować operację przeciągania znacznika mapy google?
- 23. Jak anulować ten powtarzający się alarm?
- 24. Jak anulować przejście połączone z UIButtonem
- 25. Facebook API - Jak anulować żądanie wykresu
- 26. Jak anulować oczekiwanie w select() na Windows
- 27. Jak anulować kompletną przyszłość Java 8?
- 28. Jak anulować/przerwać żądanie ajax w axios
- 29. Jak anulować zapytanie postgres w java/JDBC
- 30. Jak anulować menu kontekstowe Otwarte wydarzenie?
Przed Androida 8.0, 'JobIntentService' realizowany jest jako' IntentService'. Chociaż możesz użyć 'stopService()' do zniszczenia 'IntentService', to może nie mieć wpływu na wątek tła używany dla' onHandleIntent() '(nigdy tego nie próbowałem). – CommonsWare