[r]
(1)BroadcastReceiver
MultiUni
(2)T ng quanổ
• BroadcastReceiver (có th g i Receiver ể ọ
m t b n lo i thành ph n ng ộ ố ầ ứ
d ng Android Ch c dùng đ nh n ụ ứ ể ậ
s ki n mà ng d ng ho c h th ng phát ự ệ ứ ụ ặ ệ ố
đi
• Có cách phát-nh n là:ậ
– Khơng có th t : receiver đ u ki n ứ ự ủ ề ệ
nh n h t, không phân bi t tách r i nhau.ậ ế ệ – Có th t : receiver đăng ký u tiên h n ứ ự
nh n trậ ước, có th truy n thêm thơng tin x lý ể ề
(3)Lifecycle
• Th c lifecycle c a BroadcastReceiver ch ự ủ ỉ
có nh t m t phấ ộ ương th c onReceive().ứ – Khi có s ki n mà BroadcastReceiver đăng ký ự ệ
nh n đậ ược phát đi, phương th c onReceive() ứ
c a BroadcastReceiver s đủ ẽ ược g i.ọ
– Sau th c thi xong phự ương th c này, lifercycle ứ
(4)L u ý s d ngư ử ụ
• Ngay onReceive() k t thúc, h th ng coi ế ệ ố
nh receiver khơng cịn ho t đ ng có ộ
th kill process ch a receiver b t c lúc ể ứ ấ ứ
nào
Tránh x lý code lâu onReceive().ử Khơng có x lý b t đ ng b , ch callback… ấ ộ
trong Receiver (c th nh hi n th Dialog, k t n i ụ ể ể ị ế ố
(5)M t s broadcast thông d ngộ ố ụ
• Báo h th ng kh i đ ng xongệ ố ở ộ • Báo pin có s thay đ iự ổ
• Báo có package m i cài vào ho c xóa điớ ặ
• Báo t t máyắ
• Báo c m s c, rút s c…ắ ạ
(6)Phát s ki nự ệ
• Các b n có th phát m t s ki n cho ạ ể ộ ự ệ
receiver khác nh n d ng nh sau:ậ Intent intent = new
Intent("org.multiuni.android.BROADCAST_DEMO"); sendBroadcast(intent);
• Ho c:ặ
sendOrderedBroadcast(intent, "permission tùy ý ho c null");ặ
• Ngồi cịn có m t s g i broadcast ộ ố
khác, b n tham kh o thêm class ả
(7)Bài t p yêu c uậ ầ
1 Làm ng d n BootReceiver v a r i.ứ ụ
2 Lên g-android, tìm code m u v chuy n ẫ ề ể
hướng cu c g i, làm (cũng receiver)ộ ọ
3 Vi t ng d ng, ng d ng A nh p vào m t ế ứ ụ ứ ụ ậ ộ
chu i r i phát m t s ki n t đ nh nghĩa, ỗ ộ ự ệ ự ị
kèm theo chu i ng d ng B nh n s ỗ Ứ ụ ậ ự
ki n hi n th m t Toast có n i dung ệ ể ị ộ ộ
t i đâyạ