如何取消JobIntentService?在文檔中我沒有看到這樣做的方法,除了JobSheduler
API和Context#stopService(...)
方法外,我不確定它是否正確。如何取消JobIntentService
7
A
回答
0
JobIntentService
只帶來IntentService
到Android 8+是更加嚴格的後臺服務。它在舊版Android設備上運行時的舊版本號爲IntentService
。
IntentService
從未被設計爲取消,因此缺少任何API來取消JobIntentService
。
因此,JobIntenService
只應用於不需要取消的工作。請注意,JobIntentService
仍然可以用於可能失敗,因此被中止的工作。
工作可以取消應在執行兩種:
- 的
Activity
(或其ViewModel
)用於短時工作 - 一個JobService(使用火力地堡工作分派或Job Scheduler如果minSdk爲21)
- 自定義前臺服務
1
在Android 8.0之前,JobIntentService
實現爲IntentService
。 IntentService
不會通過某些意向操作停止或採取任何其他請求,直到其onHandleIntent
方法完成先前的請求。 stopService
()將在任務完成之前不會被調用。並且它會在它自動調用時調用。這是IntentService
的一個特徵但是在這裏已經回答了類似的問題,指的是IntentServices
,希望它有幫助。
相關問題
- 1. JobScheduler和JobIntentService
- 2. 從PendingIntent(通知按鈕)啓動JobIntentService?
- 3. 如何取消註冊/取消UILocalNotification
- 4. 如何取消Alamofire.upload
- 5. 如何取消ngEvent?
- 6. 如何取消performBlock:
- 7. Numba:如何取消
- 8. 如何取消IEnumerable?
- 9. 如何取消Notification.FLAG_FOREGROUND_SERVICE
- 10. 如何取消alertdialog?
- 11. 如何取消PendingIntent
- 12. 如何取消HostingEnvironment.QueueBackgroundWorkItem
- 13. 如何取消SaveChanges
- 14. 如何取消AlertDialog.Builder
- 15. 如何取消handler.postDelayed?
- 16. 如何取消Stream.ReadAsync?
- 17. 如何取消AsyncTask
- 18. 如何取消Window.ClosingEvent?
- 19. 如何取消Meteor.setTimeout?
- 20. 如何取消UIWebView?
- 21. 如何取消chooseDesktopMedia?
- 22. 如何取消Toast
- 23. 如何取消UITapGestureRecognizer?
- 24. 如何取消jquery.load()?
- 25. 如何取消NSOperationQueue
- 26. 如何取消NSBlockOperation
- 27. 如何取消AlarmManager
- 28. 如何取消AVAudioSession
- 29. 如何取消ProgressBar?
- 30. 如何取消window.print();
在Android 8.0之前,JobIntentService是作爲IntentService實現的。雖然你可以使用'stopService()'銷燬一個'IntentService',這可能不會影響用於'onHandleIntent()的後臺線程(我從來沒有嘗試過)。 – CommonsWare