啟動(dòng)Service的方式有兩種:startService和bindService;
startService:用這種方式啟動(dòng)的service由于沒有和Activity進(jìn)行綁定,所以可以長(zhǎng)期在后臺(tái)運(yùn)行克锣,但不能調(diào)用服務(wù)里的方法翅萤。用這種方式啟動(dòng)的service的生命周期如下:
onCreate()如捅、onStartCommand()淆衷、onDestroy()捂贿。
第一次啟動(dòng)后,如果沒有調(diào)用stopService()方法巾乳,再次調(diào)用startService()方法您没,不會(huì)重走onCreate(),但是會(huì)重走onStartCommand();
bindService:用這種方式啟動(dòng)的service會(huì)和Activity進(jìn)行綁定,所以不能長(zhǎng)期在后天運(yùn)行胆绊,但是能調(diào)用服務(wù)里的方法氨鹏。它的生命周期如下:
onCreate()、onUnbind()压状、onDestroy();一個(gè)服務(wù)可以被多個(gè)客戶(一般指Activity)綁定喻犁,只有當(dāng)所有的被綁定的對(duì)象都調(diào)用的onUnbind()方法,該service才算銷毀何缓。