Kể từ Android 8.0 (API cấp 26), huy hiệu thông báo (còn gọi là dấu chấm thông báo—xuất hiện trên biểu tượng trình chạy khi ứng dụng được liên kết có thông báo đang hoạt động. Người dùng có thể chạm & giữ biểu tượng ứng dụng để hiển thị thông báo, cùng với lối tắt ứng dụng, như minh hoạ trong hình 1.
Những dấu chấm này xuất hiện theo mặc định trong các ứng dụng trình chạy có hỗ trợ chúng. ứng dụng của bạn không cần làm gì. Tuy nhiên, có thể có những tình huống mà bạn không muốn dấu chấm thông báo xuất hiện hoặc bạn muốn kiểm soát chính xác thông báo nào sẽ xuất hiện ở đó.
Hình 1. Huy hiệu thông báo và thao tác chạm và giữ trình đơn.
Tắt huy hiệu
Có những trường hợp huy hiệu không phù hợp với thông báo của bạn. Vì vậy, bạn
có thể tắt chúng theo từng kênh bằng cách gọi
setShowBadge(false)
trên NotificationChannel
của bạn
.
Ví dụ: bạn có thể muốn tắt huy hiệu thông báo trong phần sau trường hợp:
- Thông báo hiển thị liên tục: hầu hết các thông báo hiển thị liên tục, chẳng hạn như xử lý hình ảnh, bộ điều khiển chế độ phát nội dung nghe nhìn hoặc hướng dẫn điều hướng hiện tại là không hợp lý làm huy hiệu.
- Lời nhắc trên lịch: tránh các sự kiện liên quan đến huy hiệu xảy ra vào thời gian hiện tại.
- Sự kiện đồng hồ hoặc chuông báo: tránh thông báo huy hiệu liên quan đến chuông báo hiện tại.
Mã mẫu sau đây minh hoạ cách ẩn huy hiệu cho kênh thông báo:
Kotlin
val id = "my_channel_01" val name = getString(R.string.channel_name) val descriptionText = getString(R.string.channel_description) val importance = NotificationManager.IMPORTANCE_LOW val mChannel = NotificationChannel(id, name, importance).apply { description = descriptionText setShowBadge(false) } val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(mChannel)
Java
String id = "my_channel_01"; CharSequence name = getString(R.string.channel_name); String description = getString(R.string.channel_description); int importance = NotificationManager.IMPORTANCE_LOW; NotificationChannel mChannel = new NotificationChannel(id, name, importance); mChannel.setDescription(description); mChannel.setShowBadge(false); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.createNotificationChannel(mChannel);
Đặt số lượng thông báo tuỳ chỉnh
Theo mặc định, mỗi thông báo tăng một số được hiển thị khi chạm và giữ , như được minh họa trong hình 1, nhưng bạn có thể ghi đè số này cho ứng dụng của mình. Ví dụ: tính năng này có thể hữu ích nếu bạn chỉ sử dụng một thông báo để thể hiện nhiều thông điệp mới, nhưng muốn số lượng thể hiện số lượng tổng số tin nhắn mới.
Để đặt số tuỳ chỉnh, hãy gọi
setNumber()
trên thông báo, như minh hoạ dưới đây:
Kotlin
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setNumber(messageCount) .build()
Java
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setNumber(messageCount) .build();
Sửa đổi thao tác chạm vào thông báo & biểu tượng giữ trình đơn
Tiếp xúc và Hiển thị biểu tượng lớn hoặc nhỏ liên kết với
nếu có. Theo mặc định, hệ thống hiển thị biểu tượng lớn, nhưng
bạn có thể gọi
Notification.Builder.setBadgeIconType()
và truyền BADGE_ICON_SMALL
hằng số để hiển thị biểu tượng nhỏ.
Kotlin
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL) .build()
Java
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL) .build();
Ẩn lối tắt trùng lặp
Nếu ứng dụng của bạn tạo một thông báo trùng lặp với một lối tắt ứng dụng, thì bạn có thể
tạm thời ẩn lối tắt bằng cách gọi điện khi thông báo đang hoạt động
setShortcutId()
.
Để biết thêm mã mẫu có sử dụng thông báo, hãy xem Mẫu Mọi người.