You are on page 1of 23

Trng H Khoa Hc T Nhin Tp.

H Ch Minh
TRUNG TM TIN HC

Lp trnh Android
Bi 5. Intent
Ngnh Mng & Thit b di ng

2014

Ni dung
1. Khi nim v Intent

C ch hot ng
Cc dng Intent
Xy dng Intent
Truy xut Intent
Gi v Phn hi Intent trong Activity
2. Intent Filter

Lp trnh Android (2014) Bi 5. Intent

1.1 C ch hot ng
Intent c s dng truyn ti thng ip, yu cu mt hnh

ng x l t thnh phn c gi.


Intent c s dng trong ba trng hp chnh:

Khi ng Activity thng qua phng thc startActivity.


Khi ng Service thng qua phng thc startService.
Chuyn thng ip n BroadcastReceiver thng qua phng thc
sendBroadcast.

Lp trnh Android (2014) Bi 5. Intent

1.2 Cc dng Intent


Intent c chia lm hai dng:
Explicit Intent: ch nh r thnh phn x l thng qua tn lp, thng c
dng gi n cc thnh phn trong cng ng dng.
Implicit Intent: khng ch nh r thnh phn x l, thay vo b sung cc
thuc tnh nh: m t hnh ng, dng d liu

Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


i tng Intent khi ng cc thnh phn trong ng dng ng

thi mang cc thng tin v d liu c x l, bao gm cc thnh

phn sau:
Component: tn thnh phn nhn v x l Intent
Action: hnh ng yu cu thc thi
Data: d liu yu cu nhn v x l

Category: m t lnh vc hot ng


Extras: b key/value cho php gi nhn thng tin
Flag: bin c m t cch thc hot ng

Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


Explicit Intent: ch cn s dng thuc tnh Component.

Khai bo:
Intent intent = new Intent(this, <Component>);
V d: khi ng Activity c tn SecondActivity t MainActivity
Intent intent = new Intent(MainActivty.this, SecondActivity.class);

startActivity(intent);

Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


Implicit Intent: ch cn s dng thuc tnh Action.

Khai bo:
Intent intent = new Intent(<Action>);
V d: khi ng Activity c th thc hin ACTION_VIEW.
Intent intent = new Intent(Intent.ACTION_VIEW);

startActivity(intent);

Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


Action: mt s Action thng dng trong Intent.

ACTION_VIEW
ACTION_DIAL
ACTION_CALL
ACTION_EDIT

ACTION_DELETE
ACTION_SEND
ACTION_SENDTO

Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


Data: mt dng ng dn URI, cho php tr n bng d liu v

truy xut thng tin bao gm:

type
scheme + authority + path
Data c th ch nh thng qua ba phng thc:

setData
setType
setDataAndType
V d: thc hin cuc gi thng qua d liu s in thoi
Intent callPhone = new Intent(Intent.ACTION_CALL);
callPhone.setData(Uri.parse(tel:01234-56789));
startActivity(callPhone);
Lp trnh Android (2014) Bi 5. Intent

1.3 Xy dng Intent


Extras: bao gm bin Bundle cha cc gi tr b sung cn thit cho

thnh phn nhn x l Intent.


C hai cch gi d liu vo Intent:
Trc tip:
Dng phng thc putExtra(Key, Value) thit lp trc tip vo Intent.

Thng qua Bundle


To i tng Bundle, dng phng thc set<KDL>(Key, Value) vo i tng
Bundle
Dng phng thc putExtras() gi Bundle vo Intent.

Lp trnh Android (2014) Bi 5. Intent

10

1.3 Xy dng Intent


Extras:
V d: gi s nguyn x vo Intent
Trc tip:
Intent intent = new Intent();
intent.putExtra(SoNguyenX, x);
Thng qua Bundle:
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putInt(SoNguyenX, x);
intent.putExtras(bundle);

Lp trnh Android (2014) Bi 5. Intent

11

1.4 Truy xut


Truy xut:
Truy xut d liu trc tip Extras:
Dng phng thc get<KDL>Extra(Key, DefaultValue) truy xut d liu Intent.

Thng qua Bundle


Dng phng thc getExtras() truy xut i tng Bundle trong Intent.
Dng phng thc get<KDL>(Key, DefaultValue) truy xut d liu trong Bundle.

Lp trnh Android (2014) Bi 5. Intent

12

1.4 Truy xut


Truy xut:
V d: truy xut s nguyn c gi trong Intent
Trc tip:
Intent intent = getIntent();
int soNguyenX = intent.getIntExtra(SoNguyenX, 0);
Thng qua Bundle:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
int soNguyenX = bundle.getInt(SoNguyenX, 0);

Lp trnh Android (2014) Bi 5. Intent

13

1.5 Gi v phn hi Intent trong Activity


Vic gi v phn hi Intent trong Activity c chia lm 3 bc
Bc 1: Gi Intent thng qua phng thc startActivityForResult() bao
gm 2 tham s:
Intent: d liu cn gi x l.
requestCode: m yu cu x l t pha gi.
Bc 2: Nhn v x l Intent, sau xc nhn thng tin phn hi thng qua

phng thc setResult() trong thnh phn ng dng phn hi.


Khi to i tng Intent, thit lp cc thuc tnh cn thit: action,
category
Gi d liu phn hi trc tip vo Intent hoc thng qua bin Bundle.

Gi phng thc setResult vi tham s truyn vo l Intent.


Bc 3: Gi phng thc onActivityResult() truy xut ba tham s:
requestCode: m yu cu gii quyt vi intent tng ng.
resultCode: m kt qu nhn v t pha phn hi.

Intent: d liu nhn v t pha phn hi.


Lp trnh Android (2014) Bi 5. Intent

14

1.5 Gi v phn hi Intent trong Activity


M hnh hot ng:
startActivtyForResult(intent)
getIntent

SendActivity

setResult(intent)

requestCode

ReceiveActivity

resultCode

onActivityResult(intent)

Lp trnh Android (2014) Bi 5. Intent

15

Ni dung
1. Khi nim v Intent
2. Intent Filter
M t

Qui tc thit lp
Xy dng IntentFilter

Lp trnh Android (2014) Bi 5. Intent

16

2.1 M t
Thc hin m t cu trc Intent, cho php thc hin ch nhn cc

Intent theo ng cu trc m t.


C th lc Intent theo ba thuc tnh:

Action
Data (type, scheme, authority & path)
Category

Lp trnh Android (2014) Bi 5. Intent

17

2.2 Qui tc thit lp


IntentFilter thc hin lc Intent theo th t u tin khi c nhiu

thuc tnh c thit lp v c nhng qui tc nht nh:

Nu khng thit lp Action, ch nhn cc Intent khng c Action.


Nu thit lp thuc tnh Action v khng thit lp thuc tnh Data, ch
cho php lc cc Intent khng c Data.
IntentFilter cho php nhn cc Intent c bt k d liu no c lin
quan n thuc tnh Action.

Lp trnh Android (2014) Bi 5. Intent

18

2.3 Xy dng IntentFilter


C th khi to i tng IntentFilter bng 2 cch:

Trong java Code:


Cc hm khi to:

IntentFilter()
IntentFilter(String Action)
IntentFilter(String Action, URI data)
IntentFilter(IntentFilter o)

Trong tp tin AndroidManifest.xml:


Khai bo th cp th <intentfilter><intentfilter/>
Trong cp th c th cha cc th sau:

<action/>
<data/>
<category/>

Lp trnh Android (2014) Bi 5. Intent

19

2.3 Xy dng IntentFilter


Action:

Cc thuc tnh:
<action android:name=string />
Trong :

android:name : s dng cc thuc tnh trong lp Intent.ACTION_string


hoc t nh ngha chui action.

V d khai bo:
<action android:name=android.intent.action.MAIN />
<action android:name=com.htsi.t3h.action.ShowImage />

Lp trnh Android (2014) Bi 5. Intent

20

2.3 Xy dng IntentFilter


Data:

Cc thuc tnh:
<data android:scheme="string"
android:host="string"
android:port="string"
android:path="string"

android:pathPattern="string"
android:pathPrefix="string"
android:mimeType="string" />

V d khai bo:
<data android:scheme=http android:mimeType=video/mpeg />
<data android:mineType=image/* />
<data android:mineType=*/* />

Lp trnh Android (2014) Bi 5. Intent

21

2.3 Xy dng IntentFilter


Category:

Cc thuc tnh:
<category android:name=string />
Trong :

android:name : Intent.CATEGORY_string. Khai bo theo cu trc


android.intent.category.string

V d khai bo:
<category android:name=android.intent.category.DEFAULT />
<category android:name=android.intent.category.LAUNCHER />

Lp trnh Android (2014) Bi 5. Intent

22

Tho lun

Lp trnh Android (2014) Bi 5. Intent

23

You might also like