Sử dụng Notification trong Android
White

Minh Tú Anh viết ngày 30/06/2017

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.
alt text
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 Notificationnoti 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();

alt text
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))
alt text

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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Minh Tú Anh

10 bài viết.
3 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
5 0
Xin chào các bạn. Vào chủ đề chính luôn nhé, hôm nay mình sẽ hướng dẫn các bạn sử dụng fragment trong android. Đây là một thành phần khá quan trọng...
Minh Tú Anh viết 1 năm trước
5 0
White
5 5
Đặt vấn đề mình đang phải đọc một quyển ebook tiếng anh, khổ nỗi tiếng anh thì có hạn. Vì vậy mình thường xuyên phải alt+tab giữa ebook vs google ...
Minh Tú Anh viết 8 ngày trước
5 5
White
4 0
1. Intent là gì ? Intents là một thành phần quan trọng trong android. Nó cho phép các thành phần ứng dụng có thể yêu cầu các hàm từ các thành phần ...
Minh Tú Anh viết 1 năm trước
4 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
10 bài viết.
3 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!