یک نشان اعلان را تغییر دهید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با شروع Android 8.0 (سطح API 26)، نشانهای اعلان - که بهعنوان نقاط اعلان نیز شناخته میشوند - روی نماد راهانداز ظاهر میشوند، زمانی که برنامه مرتبط دارای اعلان فعال باشد. همانطور که در شکل 1 نشان داده شده است، کاربران میتوانند نماد برنامه را لمس کرده و نگه دارند تا اعلانها به همراه میانبرهای برنامه ظاهر شوند.
این نقطهها بهطور پیشفرض در برنامههای راهاندازی که از آنها پشتیبانی میکنند ظاهر میشوند و برنامه شما نیازی به انجام کاری ندارد. با این حال، ممکن است شرایطی وجود داشته باشد که نخواهید نقطه اعلان ظاهر شود یا بخواهید دقیقاً کنترل کنید کدام اعلانها در آنجا ظاهر میشوند.

شکل 1. نشان های اعلان و منوی لمس و نگه داشتن.
علامت گذاری را غیرفعال کنید
مواردی وجود دارد که نشانها برای اعلانهای شما معنی ندارند، بنابراین میتوانید با فراخوانی setShowBadge(false)
در شی NotificationChannel
، آنها را بر اساس هر کانال غیرفعال کنید.
به عنوان مثال، ممکن است بخواهید نشان های اعلان را در شرایط زیر غیرفعال کنید:
- اعلانهای مداوم: بیشتر اعلانهای در حال انجام، مانند پردازش تصویر، کنترلهای پخش رسانه، یا دستورالعملهای ناوبری فعلی، به عنوان یک نشان معنی ندارند.
- یادآوری های تقویم: از نشان دادن رویدادهایی که در زمان فعلی رخ می دهند اجتناب کنید.
- رویدادهای ساعت یا زنگ هشدار: از اعلانهای نشاندار مربوط به زنگ هشدارهای فعلی خودداری کنید.
کد نمونه زیر نحوه پنهان کردن نشانها را برای یک کانال اعلان نشان میدهد:
کاتلین
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)
جاوا
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);
تعداد اعلانهای سفارشی را تنظیم کنید
به طور پیشفرض، همانطور که در شکل 1 نشان داده شده است، هر اعلان یک عدد نمایش داده شده در منوی لمس و نگهداشتن را افزایش میدهد، اما میتوانید این عدد را برای برنامه خود لغو کنید. برای مثال، اگر فقط از یک اعلان برای نمایش چندین پیام جدید استفاده میکنید، اما میخواهید تعداد کل پیامهای جدید را نشان دهد، این ممکن است مفید باشد.
برای تنظیم یک شماره سفارشی، همانطور که در اینجا نشان داده شده است، با setNumber()
در اعلان تماس بگیرید:
کاتلین
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()
جاوا
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();
نماد منوی یک اعلان را تغییر دهید و نگه دارید
منوی لمس و نگه داشتن نماد بزرگ یا کوچک مرتبط با یک اعلان را در صورت وجود نمایش می دهد. به طور پیشفرض، سیستم نماد بزرگ را نمایش میدهد، اما میتوانید Notification.Builder.setBadgeIconType()
را فراخوانی کنید و ثابت BADGE_ICON_SMALL
برای نمایش نماد کوچک ارسال کنید.
کاتلین
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()
جاوا
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();
مخفی کردن یک میانبر تکراری
اگر برنامه شما اعلانی ایجاد می کند که میانبر برنامه را تکرار می کند، می توانید با فراخوانی setShortcutId()
به طور موقت میانبر را در زمانی که اعلان فعال است مخفی کنید.
برای نمونه کد بیشتری که از اعلانها استفاده میکند، به برنامه نمونه SociaLite مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Modify a notification badge\n\nStarting with Android 8.0 (API level 26), notification badges---also known as\nnotification dots---appear on a launcher icon when the associated app has an\nactive notification. Users can\ntouch \\& hold the app icon to reveal the notifications, along with any\n[app shortcuts](/guide/topics/ui/shortcuts), as shown in\nfigure 1.\n\nThese dots appear by default in launcher apps that support them, and there's\nnothing your app needs to do. However, there might be situations in which you\ndon't want the to notification dot to appear or you want to control exactly\nwhich notifications appear there.\n\n\n**Figure 1.** Notification badges and the touch \\& hold menu.\n\n\u003cbr /\u003e\n\nDisable badging\n---------------\n\nThere are cases where badges don't make sense for your notifications, so you\ncan disable them on a per-channel basis by calling\n[`setShowBadge(false)`](/reference/android/app/NotificationChannel#setShowBadge(boolean))\non your [`NotificationChannel`](/reference/android/app/NotificationChannel)\nobject.\n\nFor example, you might want to disable notification badges in the following\nsituations:\n\n- Ongoing notifications: most ongoing notifications, such as image processing, media playback controls, or current navigation instructions, don't make sense as a badge.\n- Calendar reminders: avoid badging events occurring at the current time.\n- Clock or alarm events: avoid badging notifications related to current alarms.\n\nThe following sample code demonstrates how to hide badges for\na notification channel: \n\n### Kotlin\n\n```kotlin\nval id = \"my_channel_01\"\nval name = getString(R.string.channel_name)\nval descriptionText = getString(R.string.channel_description)\nval importance = NotificationManager.IMPORTANCE_LOW\nval mChannel = NotificationChannel(id, name, importance).apply {\n description = descriptionText\n setShowBadge(false)\n}\nval notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager\nnotificationManager.createNotificationChannel(mChannel)\n```\n\n### Java\n\n```java\nString id = \"my_channel_01\";\nCharSequence name = getString(R.string.channel_name);\nString description = getString(R.string.channel_description);\nint importance = NotificationManager.IMPORTANCE_LOW;\nNotificationChannel mChannel = new NotificationChannel(id, name, importance);\nmChannel.setDescription(description);\nmChannel.setShowBadge(false);\n\nNotificationManager notificationManager =\n (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);\nnotificationManager.createNotificationChannel(mChannel);\n```\n\nSet custom notification count\n-----------------------------\n\nBy default, each notification increments a number displayed on the touch \\& hold\nmenu, as shown in figure 1, but you can override this number for your app.\nFor example, this might be useful if you're using just one notification to\nrepresent multiple new messages but want the count to represent the\nnumber of total new messages.\n\nTo set a custom number, call\n[`setNumber()`](/reference/androidx/core/app/NotificationCompat.Builder#setNumber(int))\non the notification, as shown here: \n\n### Kotlin\n\n```kotlin\nvar notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)\n .setContentTitle(\"New Messages\")\n .setContentText(\"You've received 3 new messages.\")\n .setSmallIcon(R.drawable.ic_notify_status)\n .setNumber(messageCount)\n .build()\n```\n\n### Java\n\n```java\nNotification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)\n .setContentTitle(\"New Messages\")\n .setContentText(\"You've received 3 new messages.\")\n .setSmallIcon(R.drawable.ic_notify_status)\n .setNumber(messageCount)\n .build();\n```\n\nModify a notification's touch \\& hold menu icon\n-----------------------------------------------\n\nThe touch \\& hold menu displays the large or small icon associated with a\nnotification if available. By default, the system displays the large icon, but\nyou can call\n[`Notification.Builder.setBadgeIconType()`](/reference/androidx/core/app/NotificationCompat.Builder#setBadgeIconType(int))\nand pass in the [`BADGE_ICON_SMALL`](/reference/androidx/core/app/NotificationCompat#BADGE_ICON_SMALL())\nconstant to display the small icon. \n\n### Kotlin\n\n```kotlin\nvar notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)\n .setContentTitle(\"New Messages\")\n .setContentText(\"You've received 3 new messages.\")\n .setSmallIcon(R.drawable.ic_notify_status)\n .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)\n .build()\n```\n\n### Java\n\n```java\nNotification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)\n .setContentTitle(\"New Messages\")\n .setContentText(\"You've received 3 new messages.\")\n .setSmallIcon(R.drawable.ic_notify_status)\n .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)\n .build();\n```\n\nHide a duplicate shortcut\n-------------------------\n\nIf your app creates a notification that duplicates an [app shortcut](/guide/topics/ui/shortcuts), you can\ntemporarily hide the shortcut while the notification is active by calling\n[`setShortcutId()`](/reference/androidx/core/app/NotificationCompat.Builder#setShortcutId(java.lang.String)).\n\nFor more sample code that uses notifications, see the [SociaLite sample app](https://github.com/android/socialite)."]]