FileDocCategorySizeDatePackage
Notification.javaAPI DocAndroid 1.5 API15933Wed May 06 22:41:54 BST 2009android.app

Notification

public class Notification extends Object implements android.os.Parcelable
A class that represents how a persistent notification is to be presented to the user using the {@link android.app.NotificationManager}.

Fields Summary
public static final int
DEFAULT_ALL
Use all default values (where applicable).
public static final int
DEFAULT_SOUND
Use the default notification sound. This will ignore any given {@link #sound}.
public static final int
DEFAULT_VIBRATE
Use the default notification vibrate. This will ignore any given {@link #vibrate}.
public static final int
DEFAULT_LIGHTS
Use the default notification lights. This will ignore the {@link #FLAG_SHOW_LIGHTS} bit, and {@link #ledARGB}, {@link #ledOffMS}, or {@link #ledOnMS}.
public long
when
The timestamp for the notification. The icons and expanded views are sorted by this key.
public int
icon
The resource id of a drawable to use as the icon in the status bar.
public int
number
The number of events that this notification represents. For example, if this is the new mail notification, this would be the number of unread messages. This number is be superimposed over the icon in the status bar. If the number is 0 or negative, it is not shown in the status bar.
public android.app.PendingIntent
contentIntent
The intent to execute when the expanded status entry is clicked. If this is an activity, it must include the {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK} flag, which requires that you take care of task management as described in the Activities and Tasks section of the Application Fundamentals document.
public android.app.PendingIntent
deleteIntent
The intent to execute when the status entry is deleted by the user with the "Clear All Notifications" button. This probably shouldn't be launching an activity since several of those will be sent at the same time.
public CharSequence
tickerText
Text to scroll across the screen when this item is added to the status bar.
public android.widget.RemoteViews
contentView
The view that shows when this notification is shown in the expanded status bar.
public int
iconLevel
If the icon in the status bar is to have more than one level, you can set this. Otherwise, leave it at its default value of 0.
public android.net.Uri
sound
The sound to play.

To play the default notification sound, see {@link #defaults}.

public static final int
STREAM_DEFAULT
Use this constant as the value for audioStreamType to request that the default stream type for notifications be used. Currently the default stream type is STREAM_RING.
public int
audioStreamType
The audio stream type to use when playing the sound. Should be one of the STREAM_ constants from {@link android.media.AudioManager}.
public long[]
vibrate
The pattern with which to vibrate. This pattern will repeat if {@link #FLAG_INSISTENT} bit is set in the {@link #flags} field.

To vibrate the default pattern, see {@link #defaults}.

public int
ledARGB
The color of the led. The hardware will do its best approximation.
public int
ledOnMS
The number of milliseconds for the LED to be on while it's flashing. The hardware will do its best approximation.
public int
ledOffMS
The number of milliseconds for the LED to be off while it's flashing. The hardware will do its best approximation.
public int
defaults
Specifies which values should be taken from the defaults.

To set, OR the desired from {@link #DEFAULT_SOUND}, {@link #DEFAULT_VIBRATE}, {@link #DEFAULT_LIGHTS}. For all default values, use {@link #DEFAULT_ALL}.

public static final int
FLAG_SHOW_LIGHTS
Bit to be bitwise-ored into the {@link #flags} field that should be set if you want the LED on for this notification.
  • To turn the LED off, pass 0 in the alpha channel for colorARGB or 0 for both ledOnMS and ledOffMS.
  • To turn the LED on, pass 1 for ledOnMS and 0 for ledOffMS.
  • To flash the LED, pass the number of milliseconds that it should be on and off to ledOnMS and ledOffMS.

Since hardware varies, you are not guaranteed that any of the values you pass are honored exactly. Use the system defaults (TODO) if possible because they will be set to values that work on any given hardware.

The alpha channel must be set for forward compatibility.

public static final int
FLAG_ONGOING_EVENT
Bit to be bitwise-ored into the {@link #flags} field that should be set if this notification is in reference to something that is ongoing, like a phone call. It should not be set if this notification is in reference to something that happened at a particular point in time, like a missed phone call.
public static final int
FLAG_INSISTENT
Bit to be bitwise-ored into the {@link #flags} field that if set, the audio and vibration will be repeated until the notification is cancelled.

NOTE: This notion will change when we have decided exactly what the UI will be.

public static final int
FLAG_ONLY_ALERT_ONCE
Bit to be bitwise-ored into the {@link #flags} field that should be set if you want the sound and/or vibration play each time the notification is sent, even if it has not been canceled before that.
public static final int
FLAG_AUTO_CANCEL
Bit to be bitwise-ored into the {@link #flags} field that should be set if the notification should be canceled when it is clicked by the user.
public static final int
FLAG_NO_CLEAR
Bit to be bitwise-ored into the {@link #flags} field that should be set if the notification should not be canceled when the user clicks the Clear all button.
public int
flags
public static final Parcelable.Creator
CREATOR
Parcelable.Creator that instantiates Notification objects
Constructors Summary
public Notification()
Constructs a Notification object with everything set to 0.


                  
     
    
        this.when = System.currentTimeMillis();
    
public Notification(android.content.Context context, int icon, CharSequence tickerText, long when, CharSequence contentTitle, CharSequence contentText, android.content.Intent contentIntent)

deprecated
use {@link #Notification(int,CharSequence,long)} and {@link #setLatestEventInfo}.
hide

        this.when = when;
        this.icon = icon;
        this.tickerText = tickerText;
        setLatestEventInfo(context, contentTitle, contentText,
                PendingIntent.getActivity(context, 0, contentIntent, 0));
    
public Notification(int icon, CharSequence tickerText, long when)
Constructs a Notification object with the information needed to have a status bar icon without the standard expanded view.

param
icon The resource id of the icon to put in the status bar.
param
tickerText The text that flows by in the status bar when the notification first activates.
param
when The time to show in the time field. In the System.currentTimeMillis timebase.

        this.icon = icon;
        this.tickerText = tickerText;
        this.when = when;
    
public Notification(android.os.Parcel parcel)
Unflatten the notification from a parcel.

        int version = parcel.readInt();

        when = parcel.readLong();
        icon = parcel.readInt();
        number = parcel.readInt();
        if (parcel.readInt() != 0) {
            contentIntent = PendingIntent.CREATOR.createFromParcel(parcel);
        }
        if (parcel.readInt() != 0) {
            deleteIntent = PendingIntent.CREATOR.createFromParcel(parcel);
        }
        if (parcel.readInt() != 0) {
            tickerText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
        }
        if (parcel.readInt() != 0) {
            contentView = RemoteViews.CREATOR.createFromParcel(parcel);
        }
        defaults = parcel.readInt();
        flags = parcel.readInt();
        if (parcel.readInt() != 0) {
            sound = Uri.CREATOR.createFromParcel(parcel);
        }

        audioStreamType = parcel.readInt();
        vibrate = parcel.createLongArray();
        ledARGB = parcel.readInt();
        ledOnMS = parcel.readInt();
        ledOffMS = parcel.readInt();
        iconLevel = parcel.readInt();
    
Methods Summary
public intdescribeContents()

        return 0;
    
public voidsetLatestEventInfo(android.content.Context context, java.lang.CharSequence contentTitle, java.lang.CharSequence contentText, android.app.PendingIntent contentIntent)
Sets the {@link #contentView} field to be a view with the standard "Latest Event" layout.

Uses the {@link #icon} and {@link #when} fields to set the icon and time fields in the view.

param
context The context for your application / activity.
param
contentTitle The title that goes in the expanded entry.
param
contentText The text that goes in the expanded entry.
param
contentIntent The intent to launch when the user clicks the expanded notification. If this is an activity, it must include the {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK} flag, which requires that you take care of task management as described in Application Fundamentals: Activities and Tasks.


                                                                                                                          
       
                  
        RemoteViews contentView = new RemoteViews(context.getPackageName(),
                com.android.internal.R.layout.status_bar_latest_event_content);
        if (this.icon != 0) {
            contentView.setImageViewResource(com.android.internal.R.id.icon, this.icon);
        }
        if (contentTitle != null) {
            contentView.setTextViewText(com.android.internal.R.id.title, contentTitle);
        }
        if (contentText != null) {
            contentView.setTextViewText(com.android.internal.R.id.text, contentText);
        }
        if (this.when != 0) {
            Date date = new Date(when);
            CharSequence str = 
                DateUtils.isToday(when) ? DateFormat.getTimeFormat(context).format(date)
                    : DateFormat.getDateFormat(context).format(date);
            contentView.setTextViewText(com.android.internal.R.id.time, str);
        }

        this.contentView = contentView;
        this.contentIntent = contentIntent;
    
public java.lang.StringtoString()

        StringBuilder sb = new StringBuilder();
        sb.append("Notification(vibrate=");
        if (this.vibrate != null) {
            int N = this.vibrate.length-1;
            sb.append("[");
            for (int i=0; i<N; i++) {
                sb.append(this.vibrate[i]);
                sb.append(',");
            }
            sb.append(this.vibrate[N]);
            sb.append("]");
        } else if ((this.defaults & DEFAULT_VIBRATE) != 0) {
            sb.append("default");
        } else {
            sb.append("null");
        }
        sb.append(",sound=");
        if (this.sound != null) {
            sb.append(this.sound.toString());
        } else if ((this.defaults & DEFAULT_SOUND) != 0) {
            sb.append("default");
        } else {
            sb.append("null");
        }
        sb.append(",defaults=0x");
        sb.append(Integer.toHexString(this.defaults));
        sb.append(")");
        return sb.toString();
    
public voidwriteToParcel(android.os.Parcel parcel, int flags)
Flatten this notification from a parcel.

        parcel.writeInt(1);

        parcel.writeLong(when);
        parcel.writeInt(icon);
        parcel.writeInt(number);
        if (contentIntent != null) {
            parcel.writeInt(1);
            contentIntent.writeToParcel(parcel, 0);
        } else {
            parcel.writeInt(0);
        }
        if (deleteIntent != null) {
            parcel.writeInt(1);
            deleteIntent.writeToParcel(parcel, 0);
        } else {
            parcel.writeInt(0);
        }
        if (tickerText != null) {
            parcel.writeInt(1);
            TextUtils.writeToParcel(tickerText, parcel, flags);
        } else {
            parcel.writeInt(0);
        }
        if (contentView != null) {
            parcel.writeInt(1);
            contentView.writeToParcel(parcel, 0);
        } else {
            parcel.writeInt(0);
        }

        parcel.writeInt(defaults);
        parcel.writeInt(this.flags);

        if (sound != null) {
            parcel.writeInt(1);
            sound.writeToParcel(parcel, 0);
        } else {
            parcel.writeInt(0);
        }
        parcel.writeInt(audioStreamType);
        parcel.writeLongArray(vibrate);
        parcel.writeInt(ledARGB);
        parcel.writeInt(ledOnMS);
        parcel.writeInt(ledOffMS);
        parcel.writeInt(iconLevel);