目錄 學習Service相關知識點: 1. 概述; 2. Service生命周期; 3. Service的基本用法; 4. 服務。 問:達叔,今日工作累嗎? 答:累啊,那麼問你,你知道Android中的 Service(服務)嗎?~ 問:哥,這麼乾的嗎? 答:呵呵,是的,~ 概述: 在Android ...
目錄
學習Service相關知識點:
- 概述;
- Service生命周期;
- Service的基本用法;
- 服務。
- 問:達叔,今日工作累嗎?
答:累啊,那麼問你,你知道Android中的
Service(服務)嗎?~- 問:哥,這麼乾的嗎?
答:呵呵,是的,~
概述:
在Android中Service是一個在後臺執行長時間運行操作,而不需要和用戶交互的應用程式組件。主要是用來後臺處理網路事務,播放音樂,執行文件操作和content provider進行交互等。
- 答:簡要地說,Service的運行不依賴任何用戶界面,是一直保持在後臺運行的。
如果當某個應用程式被關閉時,所有依賴於該應用的服務也就會停止了~ - 問:哦~
對於,Service服務的分兩種類:
一:Started Service,二:Bound Service。(英文理解:開啟服務,綁定服務)。這兩種服務各有各的特色。不過在理解之前,先看看它們的生命周期情況(圖片來源於官方):
可以看出兩種啟動方式區別:
Call to startService -> onCreate() -> onStartCommand() -> Service running -> onDestroy()
Call to bindService() -> onCreate() -> onBind() -> onUnbind() -> onDestroy()
從中可以看出:
一:使用startService()方法啟動服務,調用onStartCommand()方法啟動Service,啟動Service的組件與Service沒有聯繫,所以關閉組件,後臺的Service也在運行中。
二:使用bindService()方法綁定來啟動服務,調用onBind()方法來啟動,將啟動Service的組件和Service綁定在一起,關閉組件則Service會停止。
- 問:那有什麼要註意的嗎?
- 答:其實這兩種方法並不衝突,使用startService()啟動Service後,可以再使用bindService()方法進行綁定
到時,你在調用stopService()或自身stopSelf()方法和unBindService()方法就行,註重創建與銷毀,才能更好理解~
Service的基本用法:
創建一個Service類,重寫 onCreate(),onStartCommand(),oonDestroy(),這三種通常使用的方法。
定義一個MyService的類,代碼如下:
補充說明:
Service(服務)預設是執行主線程,不是預設運行在子線程,和進程中。如果要進行耗時操作,那麼就要在開啟子線程操作和使用非同步消息處理機制。
不然會出現主線程被(ANR)的情況,ANR為應用無反應。
在創建Service時,系統會自動在配置文件對MyService進行註冊:
可利用Intent可以啟動和停止Service:
- 問:對於Service內容可以回顧一下嗎?
答:額,一:對於Started Service,當一個組件調用startService()方法請求服務時,系統會調用它的生命周期方法,啟動後,會在後臺無限期運行下去,直到完成工作調用stopSelf()或stopService()方法來終止服務的~
- 問:嗯,好的~
答:額,二:對於Bound Service的啟動,當其它組件調用bindService()進行綁定服務時,系統會調用它的生命周期方法,,其中有客戶端綁定到Service,那麼客戶端通過IBinder介面與服務進行通信,客戶端通過unbindService()方法進行斷開連接,調用onUnbind()方法解綁定,系統調用onDestroy()方法來銷毀~
對於掌握Service(服務)知識點。
Service用於後臺執行用戶指定的操作。
學習不是速成,內容理解,多練多用多查多看即可。
喜歡本文的朋友們
歡迎關註,點贊
收看更多精彩內容