我在Android中開發的第一個應用程序涉及背景中的BLE掃描。該應用程序有兩個按鈕來啓動服務(這使得掃描和記錄結果)並停止服務。爲什麼IntentService中的BLE掃描即使在服務被破壞時也能繼續工作?
從documentation我瞭解了Service和IntentService之間的區別。我懷疑使用IntentService並不是最好的方法,因爲Android系統會在處理所有傳遞的意圖時破壞服務,因此在由該服務創建的工作線程中運行的掃描也將停止工作。但是,我想嘗試測試我的知識。
正如我所期待的那樣,服務在創建後幾乎立即銷燬。但是,通知檢測到的新設備的日誌不斷出現,這意味着即使服務被破壞,掃描進程也會繼續運行。當我關閉主要活動時,掃描終於停止。我想知道爲什麼掃描過程似乎與主要活動的線程綁定,而不是由意圖服務創建的線程(自動)。爲什麼即使服務被破壞,掃描過程也能繼續工作?
我發現了一些與服務和BLE掃描相關的SO答案(here和here),但沒有人解決這個特定主題。你能給我一些幫助嗎?
你能顯示你的IntentService的代碼嗎? –