Làm thế nào tôi có thể hủy bỏ một JobIntentService? Tôi không thấy có phương pháp để làm như vậy trong tài liệu, ngoài có thể từ API JobSheduler
và phương pháp Context#stopService(...)
, tôi không chắc liệu đó có phải là cách đúng hay không.Làm thế nào để hủy bỏ một JobIntentService
Trả lời
JobIntentService
chỉ được đưa IntentService
để Android 8+ đó là nghiêm ngặt hơn về các dịch vụ nền. Nó chạy như cũ IntentService
s trên các thiết bị có phiên bản Android cũ hơn.
IntentService
chưa bao giờ được thiết kế để hủy, do đó thiếu bất kỳ API nào để hủy bỏ JobIntentService
.
Do đó, JobIntenService
chỉ nên được sử dụng cho công việc không cần phải hủy. Lưu ý rằng JobIntentService
vẫn có thể được sử dụng cho công việc có thể không thành công và do đó bị hủy bỏ.
làm việc có thể bị hủy bỏ nên được thực hiện trong một trong hai:
- Một
Activity
(hoặcViewModel
của nó) cho công việc thời gian ngắn - Một JobService (sử dụng căn cứ hỏa lực công việc Dispatcher hoặc Job Scheduler nếu minSdk là 21)
- Dịch vụ tiền cảnh tùy chỉnh
Trước Android 8.0, JobIntentService
được triển khai dưới dạng IntentService
. IntentService
không dừng hoặc nhận bất kỳ yêu cầu nào khác thông qua một số hành động có chủ định cho đến khi phương thức onHandleIntent
hoàn tất yêu cầu trước đó. stopService
() sẽ không được gọi cho đến khi nhiệm vụ được hoàn thành. Và nó được gọi tự động khi nó được. Đó là một tính năng của IntentService
Nhưng một câu hỏi tương tự đã được trả lời ở đây đề cập đến IntentServices
, hy vọng nó sẽ giúp.
cũng kiểm tra android developers
- 1. Làm thế nào để hủy bỏ NSBlockOperation
- 2. Làm thế nào để hủy bỏ một jquery.load()?
- 3. Làm thế nào để hủy bỏ một UIWebView?
- 4. Làm thế nào để hủy bỏ một quá trình PHP, khi cuộc gọi ajax bị hủy?
- 5. Làm thế nào hủy bỏ việc thực hiện một SwingWorker?
- 6. Làm thế nào để hủy bỏ BroadcastReceiver trong android
- 7. iPhone làm thế nào để hủy bỏ stop performSelector
- 8. Làm thế nào để AppDomain.Unload() hủy bỏ các chủ đề?
- 9. Làm thế nào để hủy bỏ 'git commit --amend'?
- 10. Làm thế nào để bạn hủy bỏ một jQuery fadeOut() một khi nó đã bắt đầu?
- 11. Làm thế nào để hủy bỏ ngay lập tức một BackgroundWorker làm việc?
- 12. Làm thế nào để bạn viết một nhiệm vụ MSBuild để hỗ trợ hủy bỏ?
- 13. Làm thế nào để bỏ/Hủy bỏ thông báo trên thanh trạng thái ở android trình
- 14. Làm thế nào để hủy bỏ một chuỗi các sự kiện UITouch?
- 15. Làm thế nào để hủy bỏ một nỗ lực kết nối TSQLConnection trong XE2?
- 16. Làm thế nào để hủy/bỏ qua một hành động trong redux
- 17. Làm thế nào để thực hiện một sự kiện hủy bỏ trong C#
- 18. Làm thế nào để hủy bỏ một hợp nhất trong mercurial?
- 19. Làm thế nào để hủy bỏ một sự tiếp tục của công việc?
- 20. Làm thế nào để hủy bỏ getChar một cách an toàn?
- 21. Làm thế nào để thực hiện "Hủy bỏ" chức năng trong một VisualForce Trang
- 22. Làm thế nào để hủy bỏ một kịch bản hệ thống groovy
- 23. Làm thế nào để hủy bỏ rằng một sợi được sinh ra?
- 24. làm thế nào để hủy bỏ một thông báo địa phương trong iphone
- 25. Làm thế nào để bạn hủy bỏ một khác biệt git bên ngoài?
- 26. Làm thế nào để loại bỏ/phá hủy một thể hiện flowplayer?
- 27. JobIntentService liên quan đến JobService như thế nào?
- 28. Hủy bỏ một hàm
- 29. Hủy bỏ một chủ đề?
- 30. Tôi làm cách nào để hủy bỏ phiên bản xóa?
Trước Android 8.0, 'JobIntentService' được triển khai dưới dạng' IntentService'. Trong khi bạn có thể sử dụng 'stopService()' để phá hủy 'IntentService', điều này có thể không có ảnh hưởng đến luồng nền được sử dụng cho' onHandleIntent() '(tôi chưa bao giờ thử điều này). – CommonsWare