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)

  1. Timer timer = new Timer();
    TimerTask task = new TimerTask() {
    @Override
    public void run() {
    if (running) {
    if(canvas != null)
    {
    noi dung cong viec thuc hien
    }
    } else {
    timer.cancel();
    }
    }
    };

    timer.scheduleAtFixedRate(task, 0, 1000*60*60);// 1 gio chay 1 lan

    Like

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 Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s