Android基礎:Service —— 默默為你服務

  • 作者:由 匿名使用者 發表于 動漫
  • 2022-12-12

Android基礎:Service —— 默默為你服務天羅網17 2022-06-20

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中進行操作,將服務型別以前臺的方式執行顯示在通知欄。

執行效果:

暫時引用吧,有空再實現一個:

參考資料:

Top