KHOA CÔNG NGHỆ THÔNG TIN
HCMUTE
Intents trong Android
Lập trình Di động ThS. Nguyễn Hữu Trung
111
LT
VB
CN
TT
HCMUTE
Giới thiệu
Lập trình Di động ThS. Nguyễn Hữu Trung
112
Intents một thành phần quan trọng trong android. cho phép các thành
phần ứng dụng thể yêu cầu c hàm từ các thành phần ứng dụng
android khác. dụ một activity thể chạy một activity khác bên ngoài
để chụp ảnh.
Để chạy một activity, broadcast receivers thì sử dụng phương
thức startActivity(intent).Phương thức này được định nghĩa trong đối
tượng context.
Android intents thường được sử dụng chính:
Start dịch vụ
Gọi một activity
Hiển thị một trang web
Hiển thị danh sách liên hệ
Gởi một tin nhắn
Gọi điện thoại.
2 loại intent trong Android: implicit và explicit.
LT
VB
CN
TT
HCMUTE
Đối tượng dữ liệu trong Intents
Lập trình Di động ThS. Nguyễn Hữu Trung
113
Đối tượng dữ liệu của Intent một cấu trúc dữ liệu được
dùng bởi các component trong ứng dụng hoặc hệ thống nhận
được những xử thích hợp.
Đối tượng dữ liệu của Intent thể chứa các thuộc tính:
Action
Tên của các action Intent sẽ được thực hiện.
Action thể được định nghĩa sẵn Android cung cấp hoặc do
người lập trình tự định nghĩa cho riêng ứng dụng (như dùng trong
BroadcastReceiver).
Data
Dữ liệu thành phần được gọi (activity, service,…) sẽ xử .
Được định dạng đối tượng URI (tham khảo class Uri class).
Data truyền vào sẽ được xử hành động tùy theo “the MIME
type” dữ liệu sử dụng.
LT
VB
CN
TT
HCMUTE
Đối tượng dữ liệu trong Intents
Lập trình Di động ThS. Nguyễn Hữu Trung
114
Category
chuỗi tự chứa thông tin về nhóm phân loại các đối tường để xử các
intent.
2 category được thấy trong các file manifest:
CATEGORY_BROWSABLE: Cho phép start một activity bằng Web browser
để hiện thị dữ liệu định dạng một liên kết dụ như một e-mail hay một bức
hình trên mạng.
CATEGORY_LAUNCHER: Khai báo để chỉ định activity sẽ được start khi bắt
đầu mở ứng dụng.
Extras
Chứa tất cả các cặp key-value pairs chứa các thông tin dữ liệu bổ sung truyền
qua.
Thông số extras sẽ được gán đọc bằng phương thức putExtras()/getExtras()
methods tương ứng với thông số đối tượng cấu trúc Bundle.
Flags
Những giá trị của flag này sẽ hướng dẫn hệ thống Android cách để start một
activity kết thúc một activity.
LT
VB
CN
TT
HCMUTE
Intent Filter ?
Lập trình Di động ThS. Nguyễn Hữu Trung
115
Activity, Service BroadCast Receiver sử dụng Intent Filter để thông báo
cho hệ thống biết c dạng Implicit Intent thể xử .Nói cách
khác, Intent Filter bộ lọc Intent, chỉ cho những Intent được phép đi qua
.
dụ chúng ta thiết lập 1 Activity với bộ lọc Intent cho phép bắt xử
các Intent gửi SMS.
<activity android:name=".MainActivity"
android:label="@string/activity_name">
<intent-filter>
<action
android:name="android.intent.action.SENDTO" />
<category
android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
</intent-filter>
</activity>