Android基礎:Service —— 默默為你服務
- 2022-12-12
Service有兩種啟動方式,分別為
context.startService()
和
context.bindService()
。這裡要提到Service的生命週期,兩種不同的啟動方式有不同的生命週期:
Tips:
首先建立自己的Service類,重寫其生命週期,並在mainfest。xml中進行註冊。
必須註冊Service,不然不會呼叫。簡單註冊:
補充下Service在manifest中的屬性以及作用:
接下來,我們就可以用下面的兩個方法來啟動和停止服務。
首先在我們的Activity中建立Service連線物件,重寫連線和斷開的方法。建立自定義的Binder物件,在
onServiceConnected()
中賦值然後可以呼叫自定義Binder中的方法。使用下方的bind()方法來繫結服務,使用
unBind()
來解綁服務。
這裡會用到Service的
onBind()
和
onUnbind()
的生命週期,我們在TestService中重寫之。這裡要注意的是,使用bindService()方法啟動的Service,不會呼叫
onStartCommand()
的生命週期。此外,建立自定義Binder類和物件。
這樣,當我們使用Activity中的bind()方法來繫結服務,會自動啟動服務,而我們又重寫了
onServiceConnected()
方法並使用myBinder來呼叫方法。這樣我們就可以用它來Activity和Service來進行通訊。
特別Tips:
如果先使用
startService()
來開啟服務和
bindService()
來繫結服務,當使用
unbindService()
解綁時,Service並不會被銷燬。而是使用
stopService()
才能銷燬服務。
前臺服務和後臺服務的區別:
在Service中進行操作,將服務型別以前臺的方式執行顯示在通知欄。
執行效果:
暫時引用吧,有空再實現一個:
參考資料:
下一篇:求下半月所有新番