Android 兩種啟動Service(遠程)的方式:Bind 與Start

來源:互聯網
上載者:User

標籤:des   android   style   ar   sp   on   art   cti   bs   

前言:本文主要討論啟動遠程Service。

Service和Activity不在一個工程裡面,也即不在一個App裡面。不在一個進程裡,所以會用到AIDL。

Service的android:process屬性未指定。

一、startService

1、通過調用startService啟動服務的過程:

onCreate —》onStartCommand —》onStart

startService 僅用於啟動服務,如果Activity需要與Service進行通訊,需利用Broadcast。

2、而後,多次調用startService,服務會多次執行:

onStartCommand —》onStart

3、多次調用startService後,調用一次stopService即可結束服務。(若多次調用stopService,只有第一次有用)

4、調用stopService的服務結束過程:

—》onDestroy

另外,

Activity的啟動過程:onCreate —》onStart —》onResume

Activity的退出過程:onPause —》onStop —》onDestroy

 

二、bindService

1、通過調用bindService啟動服務的過程:

onCreate —》onBind  —》(onServiceConnected)

bindService 可用於啟動服務,且能使Activity與Service進行通訊。

2、多次調用bindService,服務本身未執行任何操作。

3、所以一次unBindService就能結束服務。(若多次調用unBindService,第一次有用,後面會出錯)

4、調用unBindService的服務結束過程:

onUnbind —》onDestroy

三、先startService,後bindService

1、先調用startService,後調用bindService。服務的執行過程為:

onCreate —》onStartCommand —》onStart —》onBind  —》(onServiceConnected)

2、先unBindService,後stopService。服務結束的執行過程:

onUnbind —》onDestroy

需注意的是:unBindService會執行到onUnbind,stopService會執行到onDestroy。

3、先stopService,後unBindService。服務結束的執行過程:

onUnbind —》onDestroy

需注意的是:stopService不會執行任何操作,unBindService會執行到onUnbind—》onDestroy。

四、先bindService,後startService

1、先調用startService,後調用bindService。服務的執行過程為:

onCreate —》onBind  —》(onServiceConnected) —》onStartCommand —》onStart

2、先unBindService,後stopService。

服務執行的過程同 三。

3、先stopService,後unBindService。服務結束的執行過程:

服務執行的過程同 三。

五、總結

1、多次bindService時,服務本身的onBind不會被多次執行。

2、bind上一個Service後,執行一次unBindService就夠了。不然會出錯。

Android 兩種啟動Service(遠程)的方式:Bind 與Start

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.