Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
663,59 KB
Nội dung
LẬPTRÌNHANDROIDNÂNG CAO Bài 2:BroadcastReceiver Nội dung học Tổng quan BroadcastReceiver Phân loại BroadcastReceiver Miêu tả BroadcastReceiver Vòng đời BroadcastReceiver Hạn chế BroadcastReceiverBroadcastReceiver Là thành phần ứng dụng Android Chức dùng để nhận kiện mà ứng dụng hệ thống phát BroadcastReceiverBroadcastReceiver Có cách phát-nhận: Khơng có thứ tự: receiver đủ điều kiện nhận, khơng phân biệt tách rời Có thứ tự: receiver đăng ký ưu tiên nhận trước, truyền thêm thơng tin xử lý cho receiver sau Vòng đời BroadcastReceiver Vòng đời BroadcastReceiver gồm phương thức onReceive() Khi có kiện mà BroadcastReceiver đăng ký nhận phát đi, phương thức onReceiver() BroadcastReceiver gọi Sau thực xong phương thức này, vòng đời BroadcastReceiver kết thúc Vòng đời BroadcastReceiver Ngay onReceive() kết thúc, hệ thống kill process chứa receiver lúc Bạn nên tránh xử lý tốn nhiều thời gian BroadcastReceiver Khơng nên có xử lý bất đồng bộ, chờ đợi callback Trong Receiver (ví dụ hiển thị Dialog, kết nối với service) Vòng đời BroadcastReceiverBroadcast hệ thống Trong Android nhiều kiện hệ thống hệ thống gửi đến toàn ứng dụng hệ thống dạng broadcast intent Các intent có action định nghĩa dạng biến final static lớp Intent lớp khác (ví dụ TelephonyManager) Một số kiện quan trọng: Intent.ACTION_BOOT_COMPLETED Intent.ACTION_BATTERY_LOW Intent.ACTION_BATTERY_OKAY Một số Broadcast phổ biến Báo hệ thống khởi động xong Bán pin có thay đổi Báo tắt máy Báo cắm sạc, rút sạc Báo có package cài vào hay xóa Một số Broadcast phổ biến Thông báo tin nhắn tới Thơng báo gọi đến Bạn định nghĩa broadcast riêng (mục tiêu bạn liên lạc ứng dụng bạn viết đưa thông báo kiện quan trọng đến ứng dụng khác bạn với ứng dụng khác) onReceive() Phương thức gọi đến có kiện tương ứng phát Trong phương thức này, bạn truyền vào context intent O DEM Sử dụng phương thức onReceive Hạn chế BroadcastReceiver BroadcastReceiver phải kết thúc việc thực thi 10 giây khơng có ANR exception Từ Android 3.1, mặc định hệ thống loại bỏ tất receiver từ intent ứng dụng tương ứng với receiver chưa start người dùng ứng dụng bị stop cách tường minh người dùng thông qua menu (Manage Application) Đăng ký BroadcastReceiver qua AndroidManifest.xml I O DEM Xây dựng ứng dụng sử dụng BroadcastReceiver Đăng ký BroadcastReceiver qua code Bạn đăng ký BroadcastReceiver code sử dụng phương thức Context.registerReceiver() onResume Activity Trong onPause Activity, gọi phương thức Context.unregisterReceiver() Disable receiver Để disable receiver đăng ký AndroidManifest.xml, sử dụng PackageManager Bảo mật BroadcastReceiver Nếu bạn không muốn gửi broadcast ứng dụng khác, cân nhắc sử dụng LocalBroadcastManager Lớp LocalBroadcastManager giúp cho bạn lo vấn đề bảo mật liên quan đến việc ứng dụng khác có gửi nhận broadcast bạn Bảo mật BroadcastReceiver Intent namespace global bạn phải đảm bảo tên intent action xâu khác viết theo đặc trưng riêng bạn để đảm bảo tránh xung đột với ứng dụng khác Khi bạn sử dụng registerReceiver(BroadcastReceiver, IntentFilter), ứng dụng gửi broadcast tới receiver đăng ký Khi bạn publish receiver AndroidManifest.xml xác định intent filter cho receiver, ứng dụng gửi broadcast đến cho dù intent filter có nội dung Bảo mật BroadcastReceiver Để ngăn cản ứng dụng khác gửi yêu cầu, sử dụng android:exported=“false” Bắt đầu từ ICE_CREAM_SANDWICH, bạn hạn chế broadcast tới ứng dụng cụ thể sử dụng Intent.setPackage Sticky Broadcast Intent Broadcast intent thông thường bị sau hệ thống xử lý xong Nếu sử dụng Context.sendStickyBroadcastIntent để gửi broadcast intent intent khơng sau hệ thống xử lý Chúng ta truy xuất đến intent phương thức Context.registerReceiver(BroadcastReceiver, IntentFilter) Ví dụ Intent.ACTION_BATTERY_CHANGED sticky broadcast intent Chúng ta truy xuất đến lúc sau gửi O DEM Sử dụng sticky broadcast intent Tổng kết nội dung học Tổng quan BroadcastReceiver Phân loại BroadcastReceiver Miêu tả BroadcastReceiver Vòng đời BroadcastReceiver Hạn chế BroadcastReceiver ... quan Broadcast Receiver Phân loại Broadcast Receiver Miêu tả Broadcast Receiver Vòng đời Broadcast Receiver Hạn chế Broadcast Receiver Broadcast Receiver Là thành phần ứng dụng Android. .. Tổng kết nội dung học Tổng quan Broadcast Receiver Phân loại Broadcast Receiver Miêu tả Broadcast Receiver Vòng đời Broadcast Receiver Hạn chế Broadcast Receiver ... Application) Đăng ký Broadcast Receiver qua AndroidManifest.xml I O DEM Xây dựng ứng dụng sử dụng Broadcast Receiver Đăng ký Broadcast Receiver qua code Bạn đăng ký Broadcast Receiver code sử dụng