android-Notification通知

Android的Toast 類提供了一個方便的方式來顯示用戶的警告信息,但這些警告不是持久性的,這意味着警告閃爍在屏幕上幾秒鐘後就消失了。

對於特別重要的要提供給用戶的消息,需要有更持久性的方法。Notification是一種消息可以顯示在設備的頂部的通知欄或狀態欄中。

分類

 notification有以下幾種:

  1>普通notification

  

    1.內容標題

    2.大圖標

    3.內容

    4.內容附加信息

    5.小圖標

    6.時間

  2>大布局Notification

    圖1

  大布局notification是在android4.1以後才增加的,大布局notification與小布局notification只在‘7'-通知細節區域部分有區別,其它部分都一致。

通知細節區域。對於此區域的顯示內容,各種大型視圖通
知有着不同的設置:
Big picture style:細節區域展現一個高度爲256dp的bitmap。
Big text style:細節區域顯示一個大型文本塊。
Inbox style:細節區域包含文本行數。


大布局notification只有在所有notification的最上面時纔會顯示大布局,其它情況下顯示小布局。你也可以用手指將其擴展爲大布局(前提是它是大布局)。如下圖:

  圖2

    大布局notification有三種類型:如圖1爲NotificationCompat.InboxStyle 類型。圖2左部爲NotificationCompat.BigTextStyle。圖2右部 爲:NotificationCompat.BigPictureStyle


   3>自定義佈局notification

     除了系統提供的notification,我們也可以自定義notification。如下圖所示的一個音樂播放器控制notification:

    圖3

如何創建notification


    1>實例化一個NotificationCompat.Builder對象;如builder

     2>調用builder的相關方法對notification進行上面提到的各種設置

    3>調用builder.build()方法此方法返回一個notification對象。

     4>實例化一個NotificationManager對象;如:manager

     5>調用manager的notify方法。

  注:

   一個notification不必對上面所有的選項都進行設置,但有3項是必須的:

   小圖標, set by setSmallIcon()

     內容標題, set by setContentTitle()

     內容, set by setContentText()

public static class

NotificationCompat.Builder

extends Object
java.lang.Object
   ↳ android.support.v4.app.NotificationCompat.Builder

類概述


Builder class for NotificationCompat objects. Allows easier control over all the flags, as well as help constructing the typical notification layouts.

On platform versions that don't offer expanded notifications, methods that depend on expanded notifications have no effect.

For example, action buttons won't appear on platforms prior to Android 4.1. Action buttons depend on expanded notifications, which are only available in Android 4.1 and later.

For this reason, you should always ensure that UI controls in a notification are also available in an Activity in your app, and you should always start that Activitywhen users click the notification. To do this, use the setContentIntent() method.

概述


公有構造函數
NotificationCompat.Builder(Context context)
Constructor.
公有方法
NotificationCompat.Builder addAction(int icon, CharSequence title, PendingIntent intent)
Add an action to this notification.
Notification build()
Combine all of the options that have been set and return a new Notification object.
Notification getNotification()
該 method 從 API 級別 開始已經廢棄。 Use build() instead.
NotificationCompat.Builder setAutoCancel(boolean autoCancel)
Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel.
NotificationCompat.Builder setContent(RemoteViews views)
Supply a custom RemoteViews to use instead of the standard one.
NotificationCompat.Builder setContentInfo(CharSequence info)
Set the large text at the right-hand side of the notification.
NotificationCompat.Builder setContentIntent(PendingIntent intent)
Supply a PendingIntent to send when the notification is clicked.
NotificationCompat.Builder setContentText(CharSequence text)
Set the text (second row) of the notification, in a standard notification.
NotificationCompat.Builder setContentTitle(CharSequence title)
Set the title (first row) of the notification, in a standard notification.
NotificationCompat.Builder setDefaults(int defaults)
Set the default notification options that will be used.
NotificationCompat.Builder setDeleteIntent(PendingIntent intent)
Supply a PendingIntent to send when the notification is cleared by the user directly from the notification panel.
NotificationCompat.Builder setFullScreenIntent(PendingIntent intent, boolean highPriority)
An intent to launch instead of posting the notification to the status bar.
NotificationCompat.Builder setLargeIcon(Bitmap icon)
Set the large icon that is shown in the ticker and notification.
NotificationCompat.Builder setLights(int argb, int onMs, int offMs)
Set the argb value that you would like the LED on the device to blnk, as well as the rate.
NotificationCompat.Builder setNumber(int number)
Set the large number at the right-hand side of the notification.
NotificationCompat.Builder setOngoing(boolean ongoing)
Set whether this is an ongoing notification.
NotificationCompat.Builder setOnlyAlertOnce(boolean onlyAlertOnce)
Set this flag if you would only like the sound, vibrate and ticker to be played if the notification is not already showing.
NotificationCompat.Builder setPriority(int pri)
Set the relative priority for this notification.
NotificationCompat.Builder setProgress(int max, int progress, boolean indeterminate)
Set the progress this notification represents, which may be represented as a ProgressBar.
NotificationCompat.Builder setSmallIcon(int icon, int level)
A variant of setSmallIcon(int) that takes an additional level parameter for when the icon is a LevelListDrawable.
NotificationCompat.Builder setSmallIcon(int icon)
Set the small icon to use in the notification layouts.
NotificationCompat.Builder setSound(Uri sound)
Set the sound to play.
NotificationCompat.Builder setSound(Uri sound, int streamType)
Set the sound to play.
NotificationCompat.Builder setStyle(NotificationCompat.Style style)
Add a rich notification style to be applied at build time.
NotificationCompat.Builder setSubText(CharSequence text)
Set the third line of text in the platform notification template.
NotificationCompat.Builder setTicker(CharSequence tickerText, RemoteViews views)
Set the text that is displayed in the status bar when the notification first arrives, and also a RemoteViews object that may be displayed instead on some devices.
NotificationCompat.Builder setTicker(CharSequence tickerText)
Set the text that is displayed in the status bar when the notification first arrives.
NotificationCompat.Builder setUsesChronometer(boolean b)
Show the when field as a stopwatch.
NotificationCompat.Builder setVibrate(long[] pattern)
Set the vibration pattern to use.
NotificationCompat.Builder setWhen(long when)
Set the time that the event occurred.
[展開]
繼承方法
 From class java.lang.Object

公有構造函數


public NotificationCompat.Builder (Context context)

Constructor. Automatically sets the when field to System.currentTimeMillis() and the audio stream to the STREAM_DEFAULT.

參數
context Context that will be used to construct the RemoteViews. The Context will not be held past the lifetime of this Builder object.

公有方法


public NotificationCompat.Builder addAction (int icon, CharSequence title, PendingIntent intent)

Add an action to this notification. Actions are typically displayed by the system as a button adjacent to the notification content. 
Action buttons won't appear on platforms prior to Android 4.1. Action buttons depend on expanded notifications, which are only available in Android 4.1 and later. To ensure that an action button's functionality is always available, first implement the functionality in the Activity that starts when a user clicks the notification (seesetContentIntent()), and then enhance the notification by implementing the same functionality with addAction().

參數
icon Resource ID of a drawable that represents the action.
title Text describing the action.
intent PendingIntent to be fired when the action is invoked.

public Notification build ()

Combine all of the options that have been set and return a new Notification object.

public Notification getNotification ()

該 method 從 API 級別 開始已經廢棄。
Use build() instead.

public NotificationCompat.Builder setAutoCancel (boolean autoCancel)

Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel. The PendingIntent set withsetDeleteIntent(PendingIntent) will be broadcast when the notification is canceled.

public NotificationCompat.Builder setContent (RemoteViews views)

Supply a custom RemoteViews to use instead of the standard one.

public NotificationCompat.Builder setContentInfo (CharSequence info)

Set the large text at the right-hand side of the notification.

public NotificationCompat.Builder setContentIntent (PendingIntent intent)

Supply a PendingIntent to send when the notification is clicked. If you do not supply an intent, you can now add PendingIntents to individual views to be launched when clicked by calling RemoteViews.setOnClickPendingIntent(int,PendingIntent). Be sure to read Notification.contentIntent for how to correctly use this.

public NotificationCompat.Builder setContentText (CharSequence text)

Set the text (second row) of the notification, in a standard notification.

public NotificationCompat.Builder setContentTitle (CharSequence title)

Set the title (first row) of the notification, in a standard notification.

public NotificationCompat.Builder setDefaults (int defaults)

Set the default notification options that will be used.

The value should be one or more of the following fields combined with bitwise-or: DEFAULT_SOUNDDEFAULT_VIBRATEDEFAULT_LIGHTS.

For all default values, use DEFAULT_ALL.

public NotificationCompat.Builder setDeleteIntent (PendingIntent intent)

Supply a PendingIntent to send when the notification is cleared by the user directly from the notification panel. For example, this intent is sent when the user clicks the "Clear all" button, or the individual "X" buttons on notifications. This intent is not sent when the application calls NotificationManager.cancel(int).

public NotificationCompat.Builder setFullScreenIntent (PendingIntent intent, boolean highPriority)

An intent to launch instead of posting the notification to the status bar. Only for use with extremely high-priority notifications demanding the user's immediateattention, such as an incoming phone call or alarm clock that the user has explicitly set to a particular time. If this facility is used for something else, please give the user an option to turn it off and use a normal notification, as this can be extremely disruptive.

參數
intent The pending intent to launch.
highPriority Passing true will cause this notification to be sent even if other notifications are suppressed.

public NotificationCompat.Builder setLargeIcon (Bitmap icon)

Set the large icon that is shown in the ticker and notification.

public NotificationCompat.Builder setLights (int argb, int onMs, int offMs)

Set the argb value that you would like the LED on the device to blnk, as well as the rate. The rate is specified in terms of the number of milliseconds to be on and then the number of milliseconds to be off.

public NotificationCompat.Builder setNumber (int number)

Set the large number at the right-hand side of the notification. This is equivalent to setContentInfo, although it might show the number in a different font size for readability.

public NotificationCompat.Builder setOngoing (boolean ongoing)

Set whether this is an ongoing notification.

Ongoing notifications differ from regular notifications in the following ways:

  • Ongoing notifications are sorted above the regular notifications in the notification panel.
  • Ongoing notifications do not have an 'X' close button, and are not affected by the "Clear all" button.

public NotificationCompat.Builder setOnlyAlertOnce (boolean onlyAlertOnce)

Set this flag if you would only like the sound, vibrate and ticker to be played if the notification is not already showing.

public NotificationCompat.Builder setPriority (int pri)

Set the relative priority for this notification. Priority is an indication of how much of the user's valuable attention should be consumed by this notification. Low-priority notifications may be hidden from the user in certain situations, while the user might be interrupted for a higher-priority notification. The system sets a notification's priority based on various factors including the setPriority value. The effect may differ slightly on different platforms.

public NotificationCompat.Builder setProgress (int max, int progress, boolean indeterminate)

Set the progress this notification represents, which may be represented as a ProgressBar.

public NotificationCompat.Builder setSmallIcon (int icon, int level)

A variant of setSmallIcon(int) that takes an additional level parameter for when the icon is a LevelListDrawable.

參數
icon A resource ID in the application's package of the drawble to use.
level The level to use for the icon.

public NotificationCompat.Builder setSmallIcon (int icon)

Set the small icon to use in the notification layouts. Different classes of devices may return different sizes. See the UX guidelines for more information on how to design these icons.

參數
icon A resource ID in the application's package of the drawble to use.

public NotificationCompat.Builder setSound (Uri sound)

Set the sound to play. It will play on the default stream.

public NotificationCompat.Builder setSound (Uri sound, int streamType)

Set the sound to play. It will play on the stream you supply.

public NotificationCompat.Builder setStyle (NotificationCompat.Style style)

Add a rich notification style to be applied at build time. 
If the platform does not provide rich notification styles, this method has no effect. The user will always see the normal notification style.

參數
style Object responsible for modifying the notification style.

public NotificationCompat.Builder setSubText (CharSequence text)

Set the third line of text in the platform notification template. Don't use if you're also using setProgress(int, int, boolean); they occupy the same location in the standard template. 
If the platform does not provide large-format notifications, this method has no effect. The third line of text only appears in expanded view. 

public NotificationCompat.Builder setTicker (CharSequence tickerText, RemoteViews views)

Set the text that is displayed in the status bar when the notification first arrives, and also a RemoteViews object that may be displayed instead on some devices.

public NotificationCompat.Builder setTicker (CharSequence tickerText)

Set the text that is displayed in the status bar when the notification first arrives.

public NotificationCompat.Builder setUsesChronometer (boolean b)

Show the when field as a stopwatch. Instead of presenting when as a timestamp, the notification will show an automatically updating display of the minutes and seconds since when. Useful when showing an elapsed time (like an ongoing phone call).

public NotificationCompat.Builder setVibrate (long[] pattern)

Set the vibration pattern to use.

public NotificationCompat.Builder setWhen (long when)

Set the time that the event occurred. Notifications in the panel are sorted by this time.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章