最近有位朋友問我,Android中Service和Thread有什麼區別,爲何有時候放着方便的Thread不用,而要使用Service呢?
要解答這個問題,首先咱們要弄明白Service和Thread分別是怎麼定義的:android
- Thread 是程序執行的最小單元,它是分配CPU的基本單位。能夠用 Thread 來執行一些異步的操做。
- Service是Android的四大組件之一,被用來執行長時間的後臺任務。默認狀況下Service是運行在主線程中的。
兩者的使用上的區別
1.在Android中,Thread只是一個用來執行後臺任務的工具類,它能夠在Activity中被建立,也能夠在Service中被建立。markdown
2.Service組件主要有兩個做用:後臺運行和跨進程訪問。service能夠在android系統後臺獨立運行,線程是不能夠。異步
3.Service類是能夠供其餘應用程序來調用這個Service的而Thread只是在本類中在使用,若是本類關閉那麼這個thread也就下崗了而Service類則不會。工具
4.若是須要執行復雜耗時的操做,必須在Service中再建立一個Thread來執行任務。Service的優先級高於後臺掛起的Activity,固然也高於Activity所建立的Thread,所以,系統可能在內存不足的時候優先殺死後臺的Activity或者Thread,而不會輕易殺死Service組件,即便被迫殺死Service,也會在資源可用時重啓被殺死的Service。線程