第一部分:Notification簡(jiǎn)介
Notification俗稱通知毙石,是指在應(yīng)用程序之外顯示的消息。其作用是以一種醒目的方式提醒用戶咖刃,以下圖1就是android方面簡(jiǎn)單的通知呵燕。通知也和android的版本一樣越來(lái)越豐富儒士,例如圓點(diǎn)通知,鎖屏通知韵卤,設(shè)置通知背景及自動(dòng)超時(shí)等 骗污。目前通知(Android8.0以后)必須要有系統(tǒng)分配的一個(gè)或者多個(gè)通道
第二部分:Notification實(shí)現(xiàn)
Android系統(tǒng)提供了Notification類實(shí)現(xiàn)通知的功能,官方推薦使用Notification的內(nèi)部構(gòu)造器Builder創(chuàng)建Notification對(duì)象沈条,Notification類封裝了通知的標(biāo)題需忿,內(nèi)容,時(shí)間蜡歹,小標(biāo)題等信息
創(chuàng)建Notification的基本步驟如下:
1.使用getSystemService()獲取NotificationManager管理
2.使用Notification類創(chuàng)建通知對(duì)象屋厘,設(shè)置標(biāo)題,內(nèi)容月而,圖片等樣式汗洒。
3.調(diào)用NotificationManager的notify()調(diào)用通知欄,顯示通知
4.android8.0及以上版本父款,需要?jiǎng)?chuàng)建通知通知進(jìn)行管理
Notification類常用的方法及說(shuō)明表如圖2
通知樣式
1.基本的通知樣式
以下就是android8.0以上設(shè)置信道的方法如圖3溢谤,圖4:
下面就是如何設(shè)置通知圖5
2.高優(yōu)先級(jí)的懸浮通知
需要引起用戶的注意的通知,需要用戶點(diǎn)擊才可以消失憨攒。
android8.0以上的高優(yōu)先的懸浮通知 世杀,需要在設(shè)置通知信道時(shí)候把importance修改為IMPORTANCE_HIGH實(shí)現(xiàn),還需要通過(guò)調(diào)用setFullScreenIntent(PendingIntent)實(shí)現(xiàn)
android8.0以下通過(guò)設(shè)置setPriority(NotificationCompat.PRIORITY_HIGH)進(jìn)行設(shè)置就行
以下就是圖6就是基本代碼肝集,圖7就是樣式圖
3.展開式通知
展開式通知是通過(guò)下滑手勢(shì)將通知展開瞻坝,android8.0提供了多種可以展開方式,通過(guò)setStyle()進(jìn)行設(shè)置
? ?大文本:
? ??????.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))//msg:是文本
大圖片:
? ??????.setStyle(new NotificationCompat.BigPictureStyle().bigLargeIcon(bitmap).bigPicture(bitmap))
? ? ? ? //bitmap:是android圖片的一種格式
4.自定義布局通知
? ? 如果系統(tǒng)通過(guò)的通知模板不能滿足要求杏瞻,android還提供了自定義布局的通知所刀,將自定義布局?jǐn)U充為RemoteViews的實(shí)例,在構(gòu)建通知時(shí)調(diào)用setCustomContentView()設(shè)置自定義布局伐憾,代碼如下