Android Notification (căn bản về thông báo trong Android)


Notification là dạng thông báo xuất hiện ở phần trên cùng của màn hình, dạng thông báo này hiện giời được hỗ trợ trên cả 3 nền tảng phổ biến hiện này: Android, iOS và WindowPhone.

Android cung cấp thư viện NotificationCompat.Builder, Notification để tạo các thông báo này.

  1. NotificationCompat.Builder.build(): để tạo một thông báo
  2. Phương thức notify() của Notification: để cập nhật thông báo
  3. setSmalIcon: chỉ định icon của thông báo
  4. setContentTitle: Tiêu đề thông báo
  5. setContentText: Nội dung thông báo

Ví dụ tạo một thông báo:

Notification.Builder mBuilder = new Notification.Builder(this);
mBuilder.setContentTitle("Tin nhắn mới"); 
mBuilder.setContentText("Có điểm thực hành môn Android."); 
mBuilder.setTicker("Thông báo!"); mBuilder.setSmallIcon(R.drawable.ic_launcher);

Cập nhật thông báo

mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
/* cập nhật thông báo */
mNotificationManager.notify(notificationID, mBuilder.build());

Thông thường các ứng dụng cấu hình khi người dùng chạm lên thông báo thì hệ thống sẽ mở lại ứng dụng đã phát sinh thông báo. Để Android có thể mở lại một ứng dụng đã thông báo (có thể là bất kỳ ứng dụng nào) hợp lệ thì chúng ta cần phải thông qua đối tượng hỗ trợ là PendingIntent

Ví dụ sau đây thực hiện theo mô tả bên trên.

/* Tạo đối tượng chỉ đến activity sẽ mở khi chọn thông báo */
Intent resultIntent = new Intent(this, NotificationView.class); 
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(NotificationView.class);
// kèm dữ liệu theo activity để xử lý
resultIntent.putExtra("events",new String[] { "Có điểm thực hành môn Android" });
resultIntent.putExtra("id",notificationID);
/* Đăng ký activity được gọi khi chọn thông báo */
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT); 
mBuilder.setContentIntent(resultPendingIntent);

Sau khi mở ứng dụng (NotificationView) đã phát sinh thông báo qua hỗ trợ của PendingIntent chúng ta có thể xóa thông báo báo với phương thức cancel từ NotificartioManager

Ví dụ như sau:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(i.getIntExtra("id", 0));

Notification có 2 dạng cơ bản là dạng đơn và dạng danh sách.
Ví dụ:
Snap 2015-09-10 at 16.57.29
Mã nguồn ở
đây

Advertisements

4 thoughts on “Android Notification (căn bản về thông báo trong Android)

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s