Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android Service服務(一) Service

Android Service服務(一) Service

編輯:Android開發教程

一、Service簡介

Service是android 系統中的四大組件之一(Activity、Service、BroadcastReceiver、 ContentProvider),它跟Activity的級別差不多,但不能自己運行只能後台運行,並且可以和其他組件進行交互。service可以 在很多場合的應用中使用,比如播放多媒體的時候用戶啟動了其他Activity這個時候程序要在後台繼續播放,比如檢測SD卡上文 件的變化,再或者在後台記錄你地理信息位置的改變等等,總之服務總是藏在後台的。

Service的啟動有兩種方式: context.startService() 和 context.bindService()

二、Service啟動流程

context.startService() 啟動流程 :

context.startService()  -> onCreate()  -> onStart()  -> Service running   -> context.stopService()  -> onDestroy()  -> Service stop

如果Service還沒有運行,則 android先調用onCreate(),然後調用onStart();

如果Service已經運行,則只調用onStart(),所以一個Service的 onStart方法可能會重復調用多次。

如果stopService的時候會直接onDestroy,如果是調用者自己直接退出而沒有調用 stopService的話,Service會一直在後台運行,該Service的調用者再啟動起來後可以通過stopService關閉Service。

所 以調用startService的生命周期為:onCreate --> onStart (可多次調用) --> onDestroy

context.bindService ()啟動流程:

context.bindService()  -> onCreate()  -> onBind()  -> Service running  -> onUnbind()  -> onDestroy()  -> Service stop

onBind()將返回給客戶端一個IBind 接口實例,IBind允許客戶端回調服務的方法,比如得到Service的實例、運行狀態或其他操作。這個時候把調用者(Context, 例如Activity)會和Service綁定在一起,Context退出了,Srevice就會調用onUnbind->onDestroy相應退出。

所以 調用bindService的生命周期為:onCreate --> onBind(只一次,不可多次綁定) --> onUnbind --> onDestory。

在Service每一次的開啟關閉過程中,只有onStart可被多次調用(通過多次startService調用),其他onCreate,onBind ,onUnbind,onDestory在一個生命周期中只能被調用一次。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved