huong_dan_lap_trinh_voi_android_18

Upload: nguyen-kien

Post on 08-Apr-2018

216 views

Category:

Documents


0 download

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