Android 的四大組件:Activity,Service催什,BroadcastReceiver涵亏,ContentProvider
Service:一個(gè)運(yùn)行在后臺(tái)的組件,執(zhí)行長時(shí)間運(yùn)行且不需要與用戶交互的任務(wù)蒲凶。我們可以通過繼承Service類來實(shí)現(xiàn)自定義Service气筋。
class MyTestService : Service() {
override fun onBind(intent: Intent?): IBinder? {
return null
}
override fun onCreate() {
super.onCreate()
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}
override fun onDestroy() {
super.onDestroy()
}
}
Service組件跟Activity組件一樣在使用前需要在manifest文件中進(jìn)行聲明
<service
android:name=".services.MyTestService"
android:exported="true|false"
android:process=":testProcess" />
android:name 對(duì)應(yīng)自定義的Service的類名
android:exported 代表Service是否能被其他應(yīng)用隱式調(diào)用,其默認(rèn)值是由service中有沒有intent-filter決定的旋圆,如有則為true宠默,否則為false。手動(dòng)設(shè)置為false的情況下灵巧,即使intent-filter有匹配也無法開啟服務(wù)搀矫,即表示無法被其他應(yīng)用隱式調(diào)用。
android:process 用于設(shè)置Service所運(yùn)行的進(jìn)程
Service有兩種啟動(dòng)方式刻肄,startService瓤球,bindService
startService
其他組件可以通過startService()的方式啟動(dòng),一旦啟動(dòng)則在后臺(tái)無限期運(yùn)行敏弃,即便啟動(dòng)它的組件已經(jīng)被銷毀卦羡。(當(dāng)內(nèi)存不足時(shí)也會(huì)存在被清理的風(fēng)險(xiǎn))
生命周期:onCreate---->onStartCommand---->onDestory
bindService
其他組件可以通過bindService()的方式啟動(dòng),
生命周期:onCreate---->onBind---->onUnbind---->onDestory
詳細(xì)內(nèi)容可參照
https://blog.csdn.net/javazejian/article/details/52709857