Notification(狀態(tài)欄通知)
基于4.x的介紹
1.Notification的基本布局
注:還可以設(shè)置擴(kuò)展布局蚓土,有這樣需求的進(jìn)一步看開發(fā)文檔
2.Notification的基本使用流程
Notification:通知信息類,它里面對(duì)應(yīng)了通知欄的各個(gè)屬性
NotificationManager:是狀態(tài)欄通知的管理類渗磅,負(fù)責(zé)發(fā)通知男图、清除通知等操作表制。
Step 1.獲得NotificationManager對(duì)象: NotificationManager mNManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Step 2.創(chuàng)建一個(gè)通知欄的Builder構(gòu)造類: Notification.Builder mBuilder = new Notification.Builder(this);
Step 3.對(duì)Builder進(jìn)行相關(guān)的設(shè)置,比如標(biāo)題,內(nèi)容抑党,圖標(biāo),動(dòng)作等撵摆!
Step 4.調(diào)用Builder的build()方法為notification賦值
Step 5.調(diào)用NotificationManager的notify()方法發(fā)送通知底靠!
PS:另外我們還可以調(diào)用NotificationManager的cancel()方法取消通知
3.簡(jiǎn)單使用
4.方法大全
? ? ? ? ? ? ?setContentTitle(CharSequence):設(shè)置標(biāo)題
? ? ? ? ? ? ?setContentText(CharSequence):設(shè)置內(nèi)容
? ? ? ? ? ? ?setSubText(CharSequence):設(shè)置內(nèi)容下面一小行的文字
? ? ? ? ? ? ?setTicker(CharSequence):設(shè)置收到通知時(shí)在頂部顯示的文字信息
? ? ? ? ? ? ?setWhen(long):設(shè)置通知時(shí)間,一般設(shè)置的是收到通知時(shí)的System.currentTimeMillis()
? ? ? ? ? ? ?setSmallIcon(int):設(shè)置右下角的小圖標(biāo)特铝,在接收到通知的時(shí)候頂部也會(huì)顯示這個(gè)小圖標(biāo)
? ? ? ? ? ? ?setLargeIcon(Bitmap):設(shè)置左邊的大圖標(biāo)
? ? ? ? ? ? ?setAutoCancel(boolean):用戶點(diǎn)擊Notification點(diǎn)擊面板后是否讓通知取消(默認(rèn)不取消)
? ? ? ? ? ? ?setDefaults(int):向通知添加聲音暑中、閃燈和振動(dòng)效果的最簡(jiǎn)單、 使用默認(rèn)(defaults)屬性鲫剿,可以組合多個(gè)屬性鳄逾,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Notification.DEFAULT_VIBRATE(添加默認(rèn)震動(dòng)提醒);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Notification.DEFAULT_SOUND(添加默認(rèn)聲音提醒)灵莲;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Notification.DEFAULT_LIGHTS(添加默認(rèn)三色燈提醒)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Notification.DEFAULT_ALL(添加默認(rèn)以上3種全部提醒)
? ? ? ? ? ? ?setVibrate(long[]):設(shè)置振動(dòng)方式雕凹,eg:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? setVibrate(new long[] {0,300,500,700});延遲0ms,然后振動(dòng)300ms政冻,在延遲500ms枚抵, 接著再振動(dòng)700ms
? ? ? ? ? ? ?setLights(int argb, int onMs, int offMs):設(shè)置三色燈,參數(shù)(燈光顏色明场, 亮持續(xù)時(shí)間俄精,暗的時(shí)間) ?需看機(jī)型是否支持。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?還需為Notification設(shè)置flags為Notification.FLAG_SHOW_LIGHTS
? ? ? ? ? ? ?setSound(Uri):設(shè)置接收到通知時(shí)的鈴聲榕堰,eg:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.setDefaults(Notification.DEFAULT_SOUND) //獲取默認(rèn)鈴聲
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.setSound(Uri.parse("file:///sdcard/xx/xx.mp3")) //獲取自定義鈴聲
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "5")) //獲取Android多媒體庫(kù)內(nèi)的鈴聲
? ? ? ? ? ? ?setOngoing(boolean):設(shè)置為ture竖慧,表示它為一個(gè)正在進(jìn)行的通知嫌套。通常是用來(lái)表示 一個(gè)后臺(tái)任務(wù),用戶積極參與(如播放音樂)或以某種方 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 式正在等待,因此占用設(shè)備(如一個(gè)文件下載, 同步操作,主動(dòng)網(wǎng)絡(luò)連接)
? ? ? ? ? ? ?setProgress(int,int,boolean):設(shè)置帶進(jìn)度條的通知,參數(shù)(進(jìn)度條最大數(shù)值圾旨,當(dāng)前進(jìn)度踱讨,進(jìn)度是否不確定)
? ? ? ? ? ? ?setContentIntent(PendingIntent):與Intent略有不同,可設(shè)置執(zhí)行次數(shù) (用于遠(yuǎn)程服務(wù)通信砍的、鬧鈴痹筛、通知、啟動(dòng)器廓鞠、短信中)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?通過(guò) Pending啟動(dòng)Activity/Service/Broadcast:getActivity(Context, int, Intent, int)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLAG_ONE_SHOT:表示返回的PendingIntent僅能執(zhí)行一次帚稠,執(zhí)行完后自動(dòng)取消
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLAG_NO_CREATE:如果PendingIntent不存在則不創(chuàng)建,返回NULL
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLAG_CANCEL_CURRENT:如果PendingIntent已經(jīng)存在則取消前者床佳,然后創(chuàng)建新的PendingIntent
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(有利于數(shù)據(jù)保持為最新的滋早,可用于即時(shí)通信的通信場(chǎng)景)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FLAG_UPDATE_CURRENT:表示更新的PendingIntent
? ? ? ? ? ? ?setPriority(int):設(shè)置優(yōu)先級(jí)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MAX:重要而緊急的通知,通知用戶這個(gè)事件是時(shí)間上緊迫的或者需要立即處理的砌们。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HIGHL:高優(yōu)先級(jí)用于重要的通信內(nèi)容杆麸,例如短消息或者聊天,這些都是對(duì)用戶來(lái)說(shuō)比較有興趣的浪感。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DEFAULT:默認(rèn)優(yōu)先級(jí)用于沒有特殊優(yōu)先級(jí)分類的通知昔头。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LOW:低優(yōu)先級(jí)可以通知用戶但又不是很緊急的事件。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MIN:用于后臺(tái)消息 (例如天氣或者位置信息)影兽。最低優(yōu)先級(jí)只在狀態(tài)欄顯示圖標(biāo)揭斧,下拉通知才能看到內(nèi)容。