Hướng dẫn sử dụng thông báo trong Android - Android Notification
Công ty Vĩnh Cửu tuyển dụng lập trình viên Java

1- Android Notification

Một thông báo (Notification) là một tin nhắn bạn có thể hiển thị cho người sử dụng xem bên ngoài ứng dụng của bạn. Khi bạn yêu cầu hệ thống đưa ra thông báo, lần đầu tiên nó xuất hiện như một biểu tượng trong vùng thông báo. Để xem chi tiết của thông báo, người dùng mở các ngăn kéo thông báo (Notification drawer). Cả hai khu vực thông báo và các ngăn kéo thông báo là khu vực được hệ thống kiểm soát mà người dùng có thể xem bất cứ lúc nào.

2- Ví dụ

Tạo mới Android project - AndroidNotification
Kéo thả một Button vào giao diện. Khi bạn click vào Button này, một thông báo sẽ được đưa lên hệ thống.
Button:
  • ID: button
  • Text: Click for Notification
  • Properties:
    • onClick: notiButtonClicked
  • MainActivity.java
package org.o7planning.androidnotification;
import android.app.Notification;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;

public class MainActivity extends Activity {

    private NotificationCompat.Builder notBuilder;

    private static final int MY_NOTIFICATION_ID = 12345;

    private static final int MY_REQUEST_CODE = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.notBuilder = new NotificationCompat.Builder(this);

        // Thông báo sẽ tự động bị hủy khi người dùng click vào Panel

        this.notBuilder.setAutoCancel(true);

    }


    public void notiButtonClicked(View view)  {

        // --------------------------
        // Chuẩn bị một thông báo
        // --------------------------

        this.notBuilder.setSmallIcon(R.mipmap.ic_launcher);
        this.notBuilder.setTicker("This is a ticker");
 
        // Sét đặt thời điểm sự kiện xẩy ra.
        // Các thông báo trên Panel được sắp xếp bởi thời gian này.
        this.notBuilder.setWhen(System.currentTimeMillis()+ 10* 1000);
        this.notBuilder.setContentTitle("This is title");
        this.notBuilder.setContentText("This is content text ....");
 
        // Tạo một Intent
        Intent intent = new Intent(this, MainActivity.class);
 

        // PendingIntent.getActivity(..) sẽ start mới một Activity và trả về
        // đối tượng PendingIntent.
        // Nó cũng tương đương với gọi Context.startActivity(Intent).
        PendingIntent pendingIntent = PendingIntent.getActivity(this, MY_REQUEST_CODE,
                               intent, PendingIntent.FLAG_UPDATE_CURRENT);


        this.notBuilder.setContentIntent(pendingIntent);

        // Lấy ra dịch vụ thông báo (Một dịch vụ có sẵn của hệ thống).
        NotificationManager notificationService  =
                 (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE);

        // Xây dựng thông báo và gửi nó lên hệ thống.

        Notification notification =  notBuilder.build();
        notificationService.notify(MY_NOTIFICATION_ID, notification);

    }

}
Chạy ứng dụng: