回覆列表
  • 1 # 使用者3840516296421

    onBind和onUnbind。

    通常有兩種方式啟動一個Service,他們對Service生命週期的影響是不一樣的。

    1 透過startService

    Service會經歷 onCreate 到onStart,然後處於執行狀態,stopService的時候呼叫onDestroy方法。

    如果是呼叫者自己直接退出而沒有呼叫stopService的話,Service會一直在後臺執行。

    2 透過bindService

    Service會執行onCreate,然後是呼叫onBind, 這個時候呼叫者和Service繫結在一起。呼叫者退出了,Srevice就會呼叫onUnbind->onDestroyed方法。

    所謂繫結在一起就共存亡了。呼叫者也可以透過呼叫unbindService方法來停止服務,這時候Srevice就會呼叫onUnbind->onDestroyed方法。

    一個原則是Service的onCreate的方法只會被呼叫一次,就是你無論多少次的startService又bindService,Service只被建立一次。

    如果先是bind了,那麼start的時候就直接執行Service的onStart方法,如果先是start,那麼bind的時候就直接執行onBind方法。

  • 中秋節和大豐收的關聯?
  • 怎麼看懂機械圖紙?