android學習筆記2 Service

2021-07-06 10:19:18 字數 968 閱讀 7541

service和acitivity主要的區別就是acitivity具有使用者介面,而service沒有使用者介面,是可以長期執行的後台程式。即使使用者將程序切換到後台,服務仍然可以再後台執行。

什麼時候使用thread,什麼時候service? service一般情況下都是在後台長期執行的,不需要與使用者打交道的。如果需要與使用者打交道、互動,那麼可以使用thread。

service兩種形式

1、started

2、bound

service兩種啟動方式

1、startservice()

2、bindservice()

如何通過這兩種方式啟動

注意service都是執行在主線程中的,執行過程中不應該有阻塞的任務執行,否則會造成anr。

1)startservice()

通過傳遞intent引數,使用元件的startservice即可啟動服務。這樣服務就可以執行。一般可以繼承intentservice。

2)bindservice()

通過bindservice方法繫結服務,在acticity中可以控**務的呼叫。與startservice方式不同的最大特徵:可以用來activity與service進行通訊。多個client可以同時繫結乙個服務。

生命週期

start啟動方式的:

context.startservice() → oncreate() → onstartcommand() → service running → (stopservice) → ondestroy() → service stop

bind啟動方式的:

context.bindservice() → oncreate() → onbind() → service running → onunbind() → ondestroy() → service stop

目前僅僅了解的基本的使用方法。官網上說可以使用bind方式進行程式間ipc,目前還沒有研究。

Android學習筆記2

android1.0 和2.0 取phone的不同 原來要讀取系統聯絡人的資訊只要如下 即可實現 cursor people getcontentresolver query contactscontract.contacts.content uri,null,null,null,null whil...

Android學習筆記2 Android四大元件

android四大基本元件分別是activity,service服務,content provider內容提供者,broadcastreceiver廣播接收器。activity 應用程式中,乙個activity通常就是乙個單獨的螢幕,它上面可以顯示一些控制項也可以監聽並處理使用者的事件做出響應。ac...

Android學習筆記之布局2

android功能強大,介面華麗,但是眾多的布局屬性就害苦了開發者,下面這篇文章結合了網上不少資料,花費本人乙個下午搞出來的,希望對其他人有用。第一類 屬性值為true或false android layout centerhrizontal 水平居中 android layout centerve...