huong_dan_lap_trinh_voi_android_18
TRANSCRIPT
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
1/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 hutrng 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 giContext.startService() v dng bng lnh Context.stopService(). N c th t ngt
bng lnh Service.stopSelf() hoc Service.stopSelfResult(). Ch cn mt lnhstopService() ngng Service li cho d lnh startService() c gi ra bao nhiuln
- Service c th c vn hnh theo nh c lp trnh vic s dng mtInterface m n nh ngha. Cc ngi dng thit lp mt ngtruyn ti i
tng Service v s dng ng kt ni thm nhp vo Service. Kt ni nyc thit lp bng cch gi lnh Context.bindService() v c ng li bngcch gi lnh Context.unbindService(). Nhiu ngi dng c th kt ni ti cngmt 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 vimt Service m n c bt u vi lnh startService(). V d, mt Servicenghe nhc ch nn c th c bt u bng cch gi lnh startService() cng
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
2/6
vi mt i tng Intent m nh dng c m nhc chi. Ch sau , c th lkhi ngi s dng mun kim sot trnh chi nhc hoc bit thm thng tin v biht hin ti ang chi, ths c mt Activity to lp mt ng truyn ti Service
bng cch gi bindService(). Trong trng hp nh th ny, stopService() skhng 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 gianm 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- vchng 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 cachu k thi gian ca mi ServiceEntire lifetime ca mt Service din ra gia thi gian onCreate() c gi ra vthi gian m onDestroy() tr li. Ging nh mt Activity, mt Service li tit hnhci 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 uchi nhc onCreate(),v sau lung chi nhc s dng li onCreate(),Active lifetime ca mt Service bt u bng mt lnh ti onStart(). yl phngthc 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 nov 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 dchng c c bt u bng Context.startService() hoc Context.bindService() haykhng. Tuy nhin th, onStart() ch c gi ra i vi cc Service bt u bngstartService().
Nu mt Service cho php nhng Service khc kt ni vi n th s c thm ccphng 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 bindServicev onUnbind() c chuyn giao i tng m c chuyn n. Nu Service
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
3/6
ang c ch nh (binding), onBind() quay tr li knh thng tin m ngi dngs dng tng tc vi Service. Phng thc onUnbind() c th yu cuonRebind() 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 ccService m c to ra bng bindService(). Hy nh rng bt k Service no, chod n c khi to nh th no th n vn c thcho php cc ngi dng kt niti n mt cch hiu qu nht, cho nn bt k Service no cng c th c chnh thng qua cc cc phng thc onBind()v onUnbind()
Service LifeCycle
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
4/6
Cc bn c v hiu v Service trong Part 1. Tip theo mnh s lm 1 demonh cc bn hiu r hn v Service. Demo to 1 service chi nhc v ngis dng c th iu khin service ny.
Giao din chng trnh :
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
5/6
-
8/7/2019 huong_dan_lap_trinh_voi_android_18
6/6