一.service應(yīng)用場景,以及和Thread區(qū)別
1.Service是什么
eg:在后臺上時間運行操作而沒有用戶界面的應(yīng)用組件
可以在后臺上時間開啟,程序退出的時候,Service進程?;?/p>
eg:service和廣播都必須運行在主線程中
2.service和Thread區(qū)別
eg:Thread是程序運行的最小單位,相對獨立,因此在執(zhí)行一些耗時操作,就不會阻塞主線程
service是依托于線程中運行,耗時操作無法進行操作,如果一定要進行耗時操作,需要單獨打開子線程
二.開啟service的兩種方式以及區(qū)別
1.startService
eg:onBind 返回null即可
onCreate 首次創(chuàng)建服務(wù),一次性設(shè)置程序,在調(diào)用onStartCommand或onBind之前,如果服務(wù)已經(jīng)在運行,則不會調(diào)用該方法,該方法只會調(diào)用一次
onStartCommand 每次通過startService啟動Service都會被調(diào)用
onDestory 服務(wù)銷毀
2.bindService
eg:
1)創(chuàng)建bindService服務(wù)端,繼承自Serivce并在類中,創(chuàng)建一個實現(xiàn)Ibinder接口的實例對象,并提供公共方法給客戶端調(diào)用
2)從onBind回調(diào)方法返回次Binder實例
3)在客戶端中,從onServiceConnected回調(diào)方法接收Binder,并使用提供方法調(diào)用綁定服務(wù)