1. ??上面的組成元素依次是:
Icon/Photo:大圖標
Title/Name:標題
Message:內容信息
Timestamp:通知時間,默認是系統發出通知的時間,也可以通過setWhen()來設置
Secondary Icon:小圖標
2. ??狀態通知欄主要涉及到2個類:Notification 和NotificationManager
Notification:通知信息類,它里面對應了通知欄的各個屬性
NotificationManager:是狀態欄通知的管理類,負責發通知、清除通知等操作。
3.? Step 1. 獲得NotificationManager對象: NotificationManager mNManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Step 2. 創建一個通知欄的Builder構造類: Notification.Builder mBuilder = new Notification.Builder(this);
Step 3. 對Builder進行相關的設置,比如標題,內容,圖標,動作等!
Step 4.調用Builder的build()方法為notification賦值
Step 5.調用NotificationManager的notify()方法發送通知
PS:另外我們還可以調用NotificationManager的cancel()方法取消通知
4.? 設置相關的一些方法:
Notification.Builder mBuilder = new Notification.Builder(this);
后再調用下述的相關的方法進行設置:(官方API文檔:Notification.Builder) 常用的方法如下:
setContentTitle(CharSequence):設置標題
setContentText(CharSequence):設置內容
setSubText(CharSequence):設置內容下面一小行的文字
setTicker(CharSequence):設置收到通知時在頂部顯示的文字信息
setWhen(long):設置通知時間,一般設置的是收到通知時的System.currentTimeMillis()
setSmallIcon(int):設置右下角的小圖標,在接收到通知的時候頂部也會顯示這個小圖標
setLargeIcon(Bitmap):設置左邊的大圖標
setAutoCancel(boolean):用戶點擊Notification點擊面板后是否讓通知取消(默認不取消)
setDefaults(int):向通知添加聲音、閃燈和振動效果的最簡單、 使用默認(defaults)屬性,可以組合多個屬性,
?Notification.DEFAULT_VIBRATE(添加默認震動提醒);
?Notification.DEFAULT_SOUND(添加默認聲音提醒);
?Notification.DEFAULT_LIGHTS(添加默認三色燈提醒
)?Notification.DEFAULT_ALL(添加默認以上3種全部提醒)
5.? setContentIntent(PendingIntent):PendingIntent和Intent略有不同,它可以設置執行次數, 主要用于遠程服務通信、鬧鈴、通知、啟動器、短信中,在一般情況下用的比較少。比如這里通過 Pending啟動Activity:getActivity(Context, int, Intent, int),當然還可以啟動Service或者Broadcast PendingIntent的位標識符(第四個參數):
FLAG_ONE_SHOT 表示返回的PendingIntent僅能執行一次,執行完后自動消
?FLAG_NO_CREATE 表示如果描述的PendingIntent不存在,并不創建相應的PendingIntent,而是返回NULL
?FLAG_CANCEL_CURRENT 表示相應的PendingIntent已經存在,則取消前者,然后創建新的PendingIntent, 這個有利于數據保持為最新的,可以用于即時通信的通信場景