Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Sử dụng Notification trong Android
Sử dụng Notification trong Android
Notification là một thông báo hiển thị thông tin đến cho người dùng bên ngoài ứng dụng. Thông thường sẽ xuất hiện bến trên cùng màn hình. Để xem chi tiết thông báo, bạn cần kéo Notification drawer xuống. Trong các dự án thực tế, việc sử dụng đến Notification là không thể thiếu. Vậy hôm nay mình xin hướng dẫn các bạn cách tạo notification trong lập trình android
1. Notification Manager
Notification Manager là lớp quản lý các Notification. Nó cho phép đặt các Notification vào thanh tiêu đề của ứng dụng. Người dùng có thể mở Notification và tương tác với Notification để mở Activity tương ứng.
Các thông báo trong Android là các đối tượng thuộc lớp Notification. Tuy nhiên, để tạo ra các thông báo, bạn cần sử dụng lớp NotificationManager. Một đối tượng NotificationManager được tạo ra từ Context thông qua hàm getSystemService()
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
Context là một lớp trừu tượng của hệ thống, chứa thông tin môi trường ứng dụng, cung cấp các phương thức để có thể tương tác với hệ điều hành, giúp chúng ta dễ dàng truy cập và tương tác tới các tài nguyên của hệ thống...
Sau khi bạn đã có một đối tượng NotificationManager, giả sử bạn có thêm một đối tượng Notification là noti thì để hiện thị thông báo, chạy lệnh sau
notificationManager.notify(0, noti);
Tham số 0 hiểu là ID của đối tượng noti
Tiếp theo ta tìm hiểu xem làm thế nào để tạo ra một đối tượng Notification
2. Tạo một Notification
Trong lớp Notification có một lớp Builder, lớp này dùng để tạo giao diện cho 1 thông báo. Ta sử dụng lớp PendingIntent để bắt sự kiện khi kích vào thông báo
Intent intent = new Intent(this,MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);
Notification noti = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject")
.setSmallIcon(R.drawable.btn_star_big_on_selected)
.setContentIntent(pIntent)
.setAutoCancel(true)
.addAction(R.drawable.icontraitim, "Call", pIntent1)
.addAction(R.drawable.icon4, "More", pIntent1)
.addAction(R.drawable.iconhai, "And more", pIntent1).build();
Ví dụ như đoạn code trên thì bạn hiểu như sau: khi kích vào thông báo, nó sẽ thực hiện cái pIntent (chuyển từ màn hình đang đứng sang màn hình MainActivity). Nếu kích vào button thì thực hiện cái pIntent1 (giả sử mình có tạo pIntent1). Để hiện ra button bạn vuốt thông báo xuống phía dưới
Thêm: từ android 4.1 hỗ trợ thông báo mở rộng lên đến 256dp, longText thuộc kiểu String là một đoạn text dài. Để sử dụng, bạn thay lệnh .setContentText("Subject")
thành .setStyle(new Notification.BigTextStyle().bigText(longText))
3. Hủy một notification
Bạn có thể xóa một Notification nhất định bằng lệnh notiManager.cancel(notiID);
hoặc xóa tất cả notiManager.cancelAll();
4. Pending Intent
Trong đoạn code phần 2, mình có sử dụng Pending Intent
Một PendingIntent là một token cho phép chuyển đến một ứng dụng khác ( ví dụ notification manager, alarm manager hoặc các ứng dụng bên thứ 3 ) , nó cho phép ứng dụng khác sử dụng quyền trong ứng dụng của bạn để thực hiện một chức năng nào đó.
Tham Khảo: http://www.vogella.com/tutorials/AndroidNotifications/article.html
haitm 22-06-2017




