You are on page 1of 6

Android Service

4 Tutorial trc cc bn c 1 lng kin thc kha kh, tip sau y mnh
xin gii thiu 1 khi nim c bn na trong android, l Service
Service l 1 trong 4 thnh phn chnh trong 1 ng dng Android ( Activity,
Service, BroadcastReceiver, ContentProvider) thnh phn ny chy trong hu
trng v lm nhng cng vic khng cn ti giao din nh chi nhc, download,
x l tnh ton
Mt Service c th c s dng theo 2 cch:
- N c th c bt u v c cho php hot ng cho n khi mt ngi no
dng n li hoc n t ngt. ch ny, n c bt u bng cch gi
Context.startService() v dng bng lnh Context.stopService(). N c th t ngt
bng lnh Service.stopSelf() hoc Service.stopSelfResult(). Ch cn mt lnh
stopService() ngng Service li cho d lnh startService() c gi ra bao nhiu
ln
- Service c th c vn hnh theo nh c lp trnh vic s dng mt
Interface m n nh ngha. Cc ngi dng thit lp mt ng truyn ti i
tng Service v s dng ng kt ni thm nhp vo Service. Kt ni ny
c thit lp bng cch gi lnh Context.bindService() v c ng li bng
cch gi lnh Context.unbindService(). Nhiu ngi dng c th kt ni ti cng
mt thit b. Nu Service vn cha c khi chy, lnh bindService() c th ty
khi chy n. Hai ch ny th khng tch bit ton b. Bn c th kt ni vi
mt Service m n c bt u vi lnh startService(). V d, mt Service
nghe nhc ch nn c th c bt u bng cch gi lnh startService() cng

vi mt i tng Intent m nh dng c m nhc chi. Ch sau , c th l


khi ngi s dng mun kim sot trnh chi nhc hoc bit thm thng tin v bi
ht hin ti ang chi, th s c mt Activity to lp mt ng truyn ti Service
bng cch gi bindService(). Trong trng hp nh th ny, stopService() s
khng thc s ngng Service cho n khi lin kt cui cng c ng li.
Ging nh mt Activity, mt Service cng c cc phng thc chu k thi gian
m bn c th ci t kim sot nhng s thay i trong trng thi ca n.
Nhng nhng phng thc ca Service th t hn l ca Activity ch c 3- v
chng th c s dng rng ri, khng c bo v.
void onCreate()
void onStart(Intent intent)
void onDestroy()
Bng vic thc hin nhng phng thc ny, bn c th gim st 2 vng lp ca
chu k thi gian ca mi Service
Entire lifetime ca mt Service din ra gia thi gian onCreate() c gi ra v
thi gian m onDestroy() tr li. Ging nh mt Activity, mt Service li tit hnh
ci t ban u onCreate(), v gii phng tt c cc ti nguyn cn li
onDestroy() V d, mt Service pht li nhc c th to ra mt lung v bt u
chi nhc onCreate(),v sau lung chi nhc s dng li onCreate(),
Active lifetime ca mt Service bt u bng mt lnh ti onStart(). yl phng
thc c chuyn giao i tng Intent m c thng qua ti startService()
Service m nhc s m i tng Intent quyt nh xem s chi loi nhc no
v bt u pht nhc.
Khng c callback tng ng no cho thi im Service ngng li khng c
phng thc onStop()
Cc phng thc onCreate() v onDestroy() c gi cho tt c cc Service d
chng c c bt u bng Context.startService() hoc Context.bindService() hay
khng. Tuy nhin th, onStart() ch c gi ra i vi cc Service bt u bng
startService().
Nu mt Service cho php nhng Service khc kt ni vi n th s c thm cc
phng thc callback dnh cho Service thc hin
IBinder onBind(Intent intent)
boolean onUnbind(Intent intent)
void onRebind(Intent intent)
Hm callback onBind() thng qua i tng Intent oc truyn n bindService
v onUnbind() c chuyn giao i tng m c chuyn n. Nu Service

ang c ch nh (binding), onBind() quay tr li knh thng tin m ngi dng


s dng tng tc vi Service. Phng thc onUnbind() c th yu cu
onRebind() c gi nu mt ngi dng kt ni vi Service
Biu di y minh ha cho cc phng thc callback ginh cho mt Service.
Mc d, n phn tch cc Service c to ra thng qua startService vi cc
Service m c to ra bng bindService(). Hy nh rng bt k Service no, cho
d n c khi to nh th no th n vn c th cho php cc ngi dng kt ni
ti n mt cch hiu qu nht, cho nn bt k Service no cng c th c ch
nh thng qua cc cc phng thc onBind()v onUnbind()

Service LifeCycle

Cc bn c v hiu v Service trong Part 1. Tip theo mnh s lm 1 demo


nh cc bn hiu r hn v Service. Demo to 1 service chi nhc v ngi
s dng c th iu khin service ny.
Giao din chng trnh :

You might also like