每个应用程序的Android系统通知限制

19
这可能与主题无关,但我找不到相关内容。
安卓应用程序能够显示的通知数量是否有限制?在显示100个通知后,我遇到了问题。没有明确说明这一点的文档。
注意:显示100个通知并不是一个好主意,但出于某些原因是必需的。

3
@SharpEdge,我不知道你怎么做,但通常我会以编程方式发布通知。 - Mike M.
是的,我也考虑过这个问题,但为了从开发者社区获得回应,我在这里提问了。 - MohK
@MikeM。“通知限制数量”这个限制可能会根据供应商的UI外观和感觉来实施,因为OP已经表示他没有找到任何相关文档。我知道通知是以编程方式发出的,但这与此无关。 - Sharp Edge
@SharpEdge 我同意你的观点,但这个问题并非完全与编程无关。 - Mike M.
5个回答

10
根据@Nirel的回答。
1)我尝试在3个不同的设备上运行代码。
令人惊讶的是,超过50条的通知没有显示在通知区域。
它给出以下错误。
W/NotificationManager﹕ notify: id corrupted: sent 51, got back 0

同样的错误在后续的调用中出现。
我看到了NotificationManager的源代码,如果输入和输出的id不相同,它会产生这个错误。请参考下面的代码。

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/NotificationManager.java#L233

2) 在我尝试每隔100毫秒通知一次后,仍然出现了相同的错误。
我尝试的方法是在代码执行时删除一个通知。
令人惊讶的是,状态栏上出现了第153个通知。
因此,结论是最多只能有50个通知。这可能是默认行为,并且可能会因制造商而异,正如@Sharp Edge所说。
谢谢。

非常有用的信息。 - Anbarasu Chinna

10

在API23中

包名为 com.android.server.notification 的 NotificationManagerService.java 文件中,存在以下代码:

static final int MAX_PACKAGE_NOTIFICATIONS = 50;

该变量指定了每个应用程序的通知和Toast消息的限制数量为50。


8

这很有趣。虽然显示如此多的通知不是一个好的用户体验,但了解概念还是很重要的。顺便说一下,我喜欢你关于WorkManager的文章。愉快分享 :) - MohK

6

Android 10通知抽屉中,每个应用的通知限制从50降至24。

在此处阅读更多信息


3

运行以下命令:

// prepare intent which is triggered if the
// notification is selected

Intent intent = new Intent(this, NotificationReceiver.class);
// use System.currentTimeMillis() to have a unique ID for the pending intent
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);

// build notification
// the addAction re-use the same intent to keep the example short
Notification n  = new Notification.Builder(this)
        .setContentTitle("New mail from " + "test@gmail.com")
        .setContentText("Subject")
        .setSmallIcon(R.drawable.icon)
        .setContentIntent(pIntent);

NotificationManager notificationManager = 
  (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

for(int i = 0;i<1000;i++)
{
Log.d("Tag", "notification number" + i "just published")
    notificationManager.notify(i, n); 
}

当应用程序崩溃时,您将看到有多少通知。

它帮了很大的忙。看看我的答案。 - MohK
1
我也在我的应用程序中测试了这个问题,确实有限制,但很奇怪,因为WhatsApp应用程序允许我发送无限的消息,他们是如何做到的? - ROI
1
即使我也很感兴趣,想知道WhatsApp如何通过克服通知限制来允许无限制的消息。 - SomeswarReddy
这个 Whatsapp 超越通知限制的问题有任何更新吗? - grrigore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接