標籤:ide details imageview comm 需要 處理 理解 的區別 bin
Android Service
學習Service相關知識點:
android service
的基礎知識,生命週期,service
分類,運行地點(本地服務,遠程服務),運行類型(前台服務,後台服務),功能(可通訊與不可通訊)。service
和Thread
的區別。
service基礎
概述:
在Android
中Service
是一個在後台執行長時間運行操作,而不需要和使用者互動的應用程式組件。主要是用來幕後處理網路事務,播放音樂,執行檔案操作和content provider
進行互動等。
service到底是什嗎?
service
作為Android
的四大組件之一,程式退出的時候,仍能在後台服務,即保活。在後台執行一系列計算任務,耗時的操作建議在單獨的線程中執行。
服務時一種可以在後台長時間的運行,沒有用介面的應用組件,即是activity
被銷毀也不會受到影響,service
運行在主線程當中,不能做長時間的運行操作。
service
不能做耗時操作,無使用者介面,生命週期長,並在後台運行。本地服務運行在主線程中,主線程停止,服務則停止,遠程服務,不受activity
的影響;前台服務,使用者可見,後台服務,使用者不可見,前台被終止,使用者知道,後台使用者則無法知道;可通訊的後台服務,兩種啟動模式,隨著調用者退出而銷毀服務,不可通訊,即使調用者退出,service
也在。
service和Thread的區別
Thread
開啟子線程,在其耗時操作,耗時操作可以開啟線程來完成,Thread
是程式的最小單元,service
運行時在主線程上,不能耗時操作,相比Thread
,service
並不是那麼獨立。
對於,Service服務的分兩種類:
啟動狀態:通過startService()
,綁定狀態:通過bindService()
(英文理解:開啟服務,綁定服務)。
Call to startService -> onCreate() -> onStartCommand() -> Service running -> onDestroy()
Call to bindService() -> onCreate() -> onBind() -> onUnbind() -> onDestroy()
service的工作流程
Service的工作過程
生命週期
這兩種服務各有各的特色。不過在理解之前,先看看它們的生命週期情況(圖片來源於官方):
onCreate():建立時調用onStartCommand():啟動時調用onBind():被綁定時調用onUnbind():被解除綁定時調用onDestroy():停止時調用
startService()
stopService()
bindService()
unbindService()
onCreate() -> onStartCommand() -> onDestroy()
onCreate() -> onBind() -> onUnbind() -> onDestroy()
結語
Android Service用法知識點的講解