page.title=Notifying the User
page.tags=notifications

trainingnavtop=true
startpage=true


@jd:body
<div id="tb-wrapper">
<div id="tb">

<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
<h2>Dependencies and prerequisites</h2>

<ul>
  <li>Android 1.6 (API Level 4) or higher</li>
</ul>
<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>

<h2>Try it out</h2>

<div class="download-box">
  <a href="{@docRoot}shareables/training/NotifyUser.zip"
class="button">Download the sample</a>
 <p class="filename">NotifyUser.zip</p>
</div>

</div>
</div>

<p>
   A notification is a user interface element that you display outside your app's normal UI to indicate 
   that an event has occurred. Users can choose to view the notification while using other apps and respond 
   to it when it's convenient for them. 

</p>

<p>
    The <a href="{@docRoot}design/patterns/notifications.html">Notifications design guide</a> shows
    you how to design effective notifications and when to use them. This class shows you how to
    implement the most common notification designs.
</p>
<h2>Lessons</h2>

<dl>
    <dt>
        <strong><a href="build-notification.html">Building a Notification</a></strong>
    </dt>
    <dd>
        Learn how to create a notification
        {@link android.support.v4.app.NotificationCompat.Builder Builder}, set the
        required features, and issue the notification.
    </dd>
    <dt>
        <strong><a href="navigation.html">Preserving Navigation when Starting an Activity</a></strong>
    </dt>
    <dd>
        Learn how to enforce the proper
        navigation for an {@link android.app.Activity} started from a notification.
    </dd>
    <dt>
        <strong>
        <a href="managing.html">Updating Notifications</a>
        </strong>
    </dt>
    <dd>
        Learn how to update and remove notifications.
    </dd>
    <dt>
        <strong>
        <a href="expanded.html">Using Big View Styles</a>
        </strong>
    </dt>
    <dd>
        Learn how to create a big view within an expanded notification, while still maintaining 
        backward compatibility.
    </dd>
   
    <dt>
        <strong>
        <a href="display-progress.html">Displaying Progress in a Notification</a>
        </strong>
    </dt>
    <dd>
        Learn how to display the progress of an operation in a notification, both for
        operations where you can estimate how much has been completed (determinate progress) and
        operations where you don't know how much has been completed (indefinite progress).
    </dd>
</dl>
