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