iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
Mobile Development

Android Studio 學習交流系列 第 21

[Day21]Android學習-元件介紹-Service

  • 分享至 

  • xImage
  •  

大家好!這篇要談談Service這個強大的英雄,Service平常不出現在畫面上,所以它不與使用者見面,即使如此,Service卻在App運作上有著很大的功勞,為什麼這麼說呢?請想一想如果有一個App專門用於計算使用者走路的步數,那麼開始計算步數時,使用者在放進口袋前或是黏貼在手臂上一定會將手機畫面關閉或是跳出app,此時,手機的應用程式屬於暫停狀態,所有的功能也因此而暫停,這樣造成app無法計算使用者的步數。為了要解決在關閉app畫面而導致功能暫停的問題發生,因此Service扮演重要的角色。接者,我們來正式的介紹Service吧!

Service

Service是能夠在系統背景後長時間執行的元件,不需要讓使用者看見,因此不需要提供UI。

Service 是可以在背景中長時間執行操作的應用程式元件,且不提供使用者介面。 也是另一個可以啟動服務的應用程式元件,就算使用者切換至其他應用程式,也會繼續在背景中執行。 此外,元件也可以繫結至服務,以便與其互動,甚至執行處理程序間通訊 (IPC)。 例如,服務可能處理網路交易、播放音樂、執行檔案輸入/輸出或與內容供應程式互動,這些都可以從背景執行。

服務形式 啟動服務 繫結服務
服務啟動 應用程式元件呼叫 startService() 應用程式元件呼叫 bindService()
服務次數 無限 元件終止服務
服務結束 使用 stopSelf() 或 stopService() 停止 呼叫 unbindService()或用戶端解除繫結
特點 使用服務結束需呼叫stopSelf() 或 stopService() 停止,需管理自己的生命週期 所有用戶端元件繫結服務結束,將終止服務,不需自行終止

Service生命週期

https://ithelp.ithome.com.tw/upload/images/20191002/201211492ayh8C2qe8.jpg

左圖是啟動服務,右圖為繫結服務

啟動服務生命週期=>
服務初始化=>onStartCommand=>Service running=>自己終止服務或呼叫stopService()終止服務=>onDestroy()

繫結服務生命週期=>
服務初始化=>onBind=>Service running=>所有用戶端的繫結服務終止或呼叫onUnbind終止服務=>onDestroy()


以上就是我學習的內容

若有什麼疑問,歡迎大家留言喔
/images/emoticon/emoticon19.gif


上一篇
[Day20]Android學習-類別介紹-Notification
下一篇
[Day22]Android學習-創新挑戰-專案說明
系列文
Android Studio 學習交流30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言