我是Android應用程序開發新手。我的第一個項目是創建一個調諧器,它需要實時記錄音頻並進行分析。Android:背景計算選項
我已閱讀在Android的後臺操作了很多,但我無法決定使用什麼:
的AsyncTask:Android文檔說,它應保持短的計算,但我需要分析數據超過幾秒鐘。
Intentservice:更適合長時間計算,但無論何時我想用按鈕都無法停止。
工作者線程:限制似乎與Asynctask類似。
以下鏈接是我發現的一個例子,與我想要做的相似。工作者線程仍然是長時間計算的理想選擇嗎?使用帶有標誌的while循環停止計算是否線程安全?
編輯:我已經成功創建了一個綁定的服務。在這個服務中,創建一個新線程來更新循環中的值,然後進行廣播。但是當我從服務中解除綁定時,線程繼續運行。即使關閉應用程序並重新啓動,該值仍會更新。
所以我回到我最初的問題。這樣的線程是如何停止的?
編輯:問題解決onUnbind()中激活一個簡單的標誌,停止線程內的循環。
請默認主線程上運行的腦海服務,但在服務線程可能會做。 – AdamM
感謝您的快速回復。綁定的服務似乎是我正在尋找的。我的應用程序結構是1個活動和2或3個片段,所以當活動關閉時,我不需要該服務繼續運行。我其實想要的是相反的。 – Iodestar