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.