Updating notifications
To set up a notification so it can be updated, issue it with a notification ID by calling NotificationManager.notify()
. To update this notification after you've issued it, update or create a NotificationCompat.Builder
object, build a Notification
object from it, and issue the Notification
with the same ID you used previously. If the previous notification is still visible, the system updates it from the contents of the Notification
object. If the previous notification has been dismissed, a new notification is created instead.
Caution: The system applies a rate limit to updating notifications. If you post updates to a notification too frequently, the system may drop some notifications. Note: You can optionally call
setOnlyAlertOnce()
to only turn on a notification sound, vibration, and ticker if the notification is not already showing.
The following snippet demonstrates a notification that is updated to reflect the number of events that have occurred. It stacks the notification, showing a summary:
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // Sets an ID for the notification, so it can be updated int notifyID = 1; mNotifyBuilder = new NotificationCompat.Builder(this, CHANNEL_ID) .setContentTitle("New Message") .setContentText("You've received new messages.") .setSmallIcon(R.drawable.ic_notify_status); numMessages = 0; // Start of a loop that processes data and then notifies the user ... mNotifyBuilder.setContentText(currentText) .setNumber(++numMessages); // Because the ID remains unchanged, the existing notification is // updated. mNotificationManager.notify( notifyID, mNotifyBuilder.build()); ...
=======================================
notification 更新一次就new 一次。。。不需要复用!!!!!!
否则会造成 TransactionTooLargeException !!!