看了Android面試一天一題(1 Day),對Service 的一些總結與思考
作者原文章鏈接: http://www.lxweimin.com/p/7a7db9f8692d
作者用幾個簡短的問題已經問到了service 的精華; 讀完以后根據自己的理解/先前的項目經驗進行了一些總結以及延伸,如有錯誤的地方,請大家指正。?
1. 前臺UI(Activity ) 與后臺任務之間的執行情況可以分為以下三種情景:?
? ? ? (1): UI 退出,后臺任務退出。像此種情況采用Thread 或者AsyncTask 實現后臺加載任務就可以
? ? ? (2): UI 退出,后臺任務不退出;UI重新啟動時,兩者不需要同步進度信息。這種情況可以考慮用Service 實現后臺任務的執行,不用考慮Service 與UI的通信問題
? ? ? (3):UI 退出,后臺任務不退出;當UI重新啟動時,后臺Service ?需要與前臺UI同步進度等相關信息。此種情況需要考慮狀態的保存恢復以及Service 與 UI通信問題 ?
2. ?對于后臺Service,如果業務需求要求Service ?的生命周期和應用進程生命周期一樣;可以考慮用靜態實例類的方案來代替Service 的方案?
3. IntentService 底層實現異步任務加載的機制適用于不需要并發執行的環境;但是對于后臺需要同時執行多個任務的情況,還是采用Service + 線程池的方案比較合適,例如音樂App后臺下載MP3 文件處理的任務。 ? ?