Home | History | Annotate | Download | only in notify-user
      1 page.title=Updating Notifications
      2 parent.title=Notifying the User
      3 parent.link=index.html
      4 
      5 trainingnavtop=true
      6 next.title=Creating Expanded Notifications
      7 next.link=expanded.html
      8 
      9 @jd:body
     10 
     11 <div id="tb-wrapper">
     12 <div id="tb">
     13 
     14 <!-- table of contents -->
     15 <h2>This lesson teaches you to</h2>
     16 <ol>
     17   <li><a href="#Updating">Modify a Notification</a></li>
     18   <li><a href="#Removing">Remove Notifications</a></li>
     19 </ol>
     20 
     21 <!-- other docs (NOT javadocs) -->
     22 <h2>You should also read</h2>
     23 
     24 <ul>
     25     <li>
     26         <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
     27     </li>
     28     <li>
     29         <a href="{@docRoot}guide/components/intents-filters.html">
     30         Intents and Intent Filters
     31         </a>
     32     </li>
     33     <li>
     34         <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
     35     </li>
     36 </ul>
     37 
     38 
     39 </div>
     40 </div>
     41 <p>
     42     When you need to issue a notification multiple times for the same type of event, you
     43     should avoid making a completely new notification. Instead, you should consider updating a
     44     previous notification, either by changing some of its values or by adding to it, or both.
     45 </p>
     46 
     47 <p>
     48     The following section describes how to update notifications and also how to remove them.
     49 </p>
     50 <h2 id="Updating">Modify a Notification</h2>
     51 <p>
     52     To set up a notification so it can be updated, issue it with a notification ID by
     53     calling {@link android.app.NotificationManager#notify(int, Notification)
     54     NotificationManager.notify(ID, notification)}. To update this notification once you've issued
     55     it, update or create a {@link android.support.v4.app.NotificationCompat.Builder} object,
     56     build a {@link android.app.Notification} object from it, and issue the
     57     {@link android.app.Notification} with the same ID you used previously.
     58 </p>
     59 <p>
     60     The following snippet demonstrates a notification that is updated to reflect the
     61     number of events that have occurred. It stacks the notification, showing a summary:
     62 </p>
     63 <pre>
     64 mNotificationManager =
     65         (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     66 // Sets an ID for the notification, so it can be updated
     67 int notifyID = 1;
     68 mNotifyBuilder = new NotificationCompat.Builder(this)
     69     .setContentTitle("New Message")
     70     .setContentText("You've received new messages.")
     71     .setSmallIcon(R.drawable.ic_notify_status)
     72 numMessages = 0;
     73 // Start of a loop that processes data and then notifies the user
     74 ...
     75     mNotifyBuilder.setContentText(currentText)
     76         .setNumber(++numMessages);
     77     // Because the ID remains unchanged, the existing notification is
     78     // updated.
     79     mNotificationManager.notify(
     80             notifyID,
     81             mNotifyBuilder.build());
     82 ...
     83 </pre>
     84 
     85 <!-- ------------------------------------------------------------------------------------------ -->
     86 <h2 id="Removing">Remove Notifications</h2>
     87 <p>
     88     Notifications remain visible until one of the following happens:
     89 </p>
     90 <ul>
     91     <li>
     92         The user dismisses the notification either individually or by using "Clear All" (if
     93         the notification can be cleared).
     94     </li>
     95     <li>
     96         The user touches the notification, and you called
     97         {@link android.support.v4.app.NotificationCompat.Builder#setAutoCancel setAutoCancel()} when
     98         you created the notification.
     99     </li>
    100     <li>
    101         You call {@link android.app.NotificationManager#cancel(int) cancel()} for a specific
    102         notification ID. This method also deletes ongoing notifications.
    103     </li>
    104     <li>
    105         You call {@link android.app.NotificationManager#cancelAll() cancelAll()}, which removes
    106         all of the notifications you previously issued.
    107     </li>
    108