安卓应用程序可以显示的通知数量有限制吗?我在显示24条通知后遇到了问题,之后的通知没有显示。
目前还没有明确说明此限制的文档。
我在安卓11中观察到了这个问题。看起来这也适用于安卓10 (https://support.google.com/pixelphone/thread/23619509?hl=en)。但是我没有安卓10,所以我没有测试过。
请帮忙查找有关此限制的文档参考,或者是否可以使用设备设置更改此行为。
安卓应用程序可以显示的通知数量有限制吗?我在显示24条通知后遇到了问题,之后的通知没有显示。
目前还没有明确说明此限制的文档。
我在安卓11中观察到了这个问题。看起来这也适用于安卓10 (https://support.google.com/pixelphone/thread/23619509?hl=en)。但是我没有安卓10,所以我没有测试过。
请帮忙查找有关此限制的文档参考,或者是否可以使用设备设置更改此行为。
是的,每个应用程序可以发布的通知数量有限制。有趣的是,该数字不是固定的,可以由设备制造商控制。根据我的观察,Google Pixel 3A手机的通知限制为25条,而OnePlus 6T和三星设备限制的通知数为50条。
如果我们仔细观察NotificationManagerService.java源代码,我们会看到一个名为MAX_PACKAGE_COUNT
的变量被声明为50。
在代码中,如果计数大于MAX_PACKAGE_NOTIFICATIONS
,它会显示一条消息,指出“Package has already posted max toasts. Not showing more!” 这就是我们受到每个应用程序发布通知数量限制的原因。
特定应用程序的通知数量已设置为50,这是在通知管理器中设置的默认值。但更重要的是,设备制造商也可以自行设置此限制。
问题:现在的问题是我们无法更改此数字,因为它对我们不可访问甚至不可见。
解决方案:如果我们希望我们的应用程序持续传递通知,我们需要在应用程序中稍微更改一些代码。
NotificationCompat.Builder builder = new NotificationCompat.Builder(...); builder.setContentTitle(...); builder.setContentText(...); builder.setTimeoutAfter(5000);
builder.setTimeoutAfter(5000);
以上一行将在通知到达5秒后自动清除通知。
因此,您的应用程序可以推送更新的通知。
参考资料: 1. 通知生成器 2. builder.setTimeOutAfter();