Tài liệu tham khảo https://developer.android.com/develop/ui/views/notifications/build-notification

Các bước dưới đây hướng dẫn bạn xây dựng các hàm dùng cho tạo Notify nhanh chóng

Bước 1: Khai báo biến ở phạm vi class

String CHANNEL_ID = "ID_chanel001";
String channel_name = "Kênh notify 001";
String channel_description = "Mô tả về chanel";

CHANEL_ID là id kênh truyền thông báo notify, dùng để phân biệt notify giữa các ứng dụng với nhau hoặc nội bộ ứng dụng.

Bước 2: Viết hàm khởi tạo CHANEL_ID

Chú ý: Notifycation Chanel chỉ có ở phên bản android từ API 26 trở lên. Dưới 26 thì không có..

void createNotificationChannel() {
        // Create the NotificationChannel, but only on API 26+ because
        // the NotificationChannel class is new and not in the support library
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            CharSequence name = channel_name;
            String description = channel_description;
            int importance = NotificationManager.IMPORTANCE_DEFAULT;
            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
            channel.setDescription(description);
            // Register the channel with the system; you can't change the importance
            // or other notification behaviors after this
            NotificationManager notificationManager = getSystemService(NotificationManager.class);
            notificationManager.createNotificationChannel(channel);
        }
    }

Bước 3: Viết hàm hiển thị notify showMyNotify()

void showMyNotify(int notificationId, String _title, String _content, boolean run_in_service) {

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setSmallIcon(android.R.drawable.ic_lock_power_off)
                .setContentTitle(_title)
                .setContentText(_content)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT);

        //--------------Trường hợp 1:  Dành cho chạy notify ở file service, broascast ... dạng background
//            startForeground(notificationId, builder.build()); // mở ghi chú dòng này và ẩn trường hợp 2 đi
        //----------------------------------

        //----------- Trường hợp 2: Dành cho chạy notify ở Activity, fragment
        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
        notificationManager.notify(notificationId, builder.build());
    }

Bước 4: Cách dùng

– Trường hợp 1 – Dùng notify ở activity: Bạn đưa code trên vào activity và chú ý trong hàm showMyNotify() dùng trường hợp 1

Trong hàm onCreate() của activity bạn gọi hàm tạo CHANEL_ID trước, sau đó bạn có thể dùng hàm showMyNotify() ở bất kỳ chỗ nào.

createNotificationChannel(); // dòng này phải để ở hàm onCreate()

//2 dòng dưới bạn có thể để ở bất kỳ đâu trong file activity
showMyNotify(1, "THông báo 1", "Nội dung 1");
showMyNotify(2, "THông báo 2", "Nội dung 2");

 

 Trường hợp 2 – Dùng notify ở service: Bạn đưa code trên vào file service và chú ý trong hàm showMyNotify() dùng trường hợp 2, ghi chú ẩn trường hợp 1 đi

Trong service thì bạn gọi hàm tạo CHANEL_ID ở trong hàm onCreate()

@Override
    public void onCreate() {
        super.onCreate();

        createNotificationChannel();// tạo chanel
    }

Sau đó bạn có thể dùng hàm showMyNotify ở trong hàm onStartCommand()

showMyNotify(1, "Thông báo trong service ", "Nội dung câu thông báo");

Xong rồi, bạn có thể chạy thử nghiệm nhé. Chúc bạn thành công.