108 lines
3.6 KiB
Plaintext
108 lines
3.6 KiB
Plaintext
page.title=Updating Notifications
|
|
parent.title=Notifying the User
|
|
parent.link=index.html
|
|
|
|
trainingnavtop=true
|
|
next.title=Creating Expanded Notifications
|
|
next.link=expanded.html
|
|
|
|
@jd:body
|
|
|
|
<div id="tb-wrapper">
|
|
<div id="tb">
|
|
|
|
<!-- table of contents -->
|
|
<h2>This lesson teaches you to</h2>
|
|
<ol>
|
|
<li><a href="#Updating">Modify a Notification</a></li>
|
|
<li><a href="#Removing">Remove Notifications</a></li>
|
|
</ol>
|
|
|
|
<!-- other docs (NOT javadocs) -->
|
|
<h2>You should also read</h2>
|
|
|
|
<ul>
|
|
<li>
|
|
<a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
|
|
</li>
|
|
<li>
|
|
<a href="{@docRoot}guide/components/intents-filters.html">
|
|
Intents and Intent Filters
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<p>
|
|
When you need to issue a notification multiple times for the same type of event, you
|
|
should avoid making a completely new notification. Instead, you should consider updating a
|
|
previous notification, either by changing some of its values or by adding to it, or both.
|
|
</p>
|
|
|
|
<p>
|
|
The following section describes how to update notifications and also how to remove them.
|
|
</p>
|
|
<h2 id="Updating">Modify a Notification</h2>
|
|
<p>
|
|
To set up a notification so it can be updated, issue it with a notification ID by
|
|
calling {@link android.app.NotificationManager#notify(int, Notification)
|
|
NotificationManager.notify(ID, notification)}. To update this notification once you've issued
|
|
it, update or create a {@link android.support.v4.app.NotificationCompat.Builder} object,
|
|
build a {@link android.app.Notification} object from it, and issue the
|
|
{@link android.app.Notification} with the same ID you used previously.
|
|
</p>
|
|
<p>
|
|
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:
|
|
</p>
|
|
<pre>
|
|
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)
|
|
.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());
|
|
...
|
|
</pre>
|
|
|
|
<!-- ------------------------------------------------------------------------------------------ -->
|
|
<h2 id="Removing">Remove Notifications</h2>
|
|
<p>
|
|
Notifications remain visible until one of the following happens:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
The user dismisses the notification either individually or by using "Clear All" (if
|
|
the notification can be cleared).
|
|
</li>
|
|
<li>
|
|
The user touches the notification, and you called
|
|
{@link android.support.v4.app.NotificationCompat.Builder#setAutoCancel setAutoCancel()} when
|
|
you created the notification.
|
|
</li>
|
|
<li>
|
|
You call {@link android.app.NotificationManager#cancel(int) cancel()} for a specific
|
|
notification ID. This method also deletes ongoing notifications.
|
|
</li>
|
|
<li>
|
|
You call {@link android.app.NotificationManager#cancelAll() cancelAll()}, which removes
|
|
all of the notifications you previously issued.
|
|
</li>
|