什么是通知
通知通常先以圖標(biāo)的形式顯示在通知區(qū)域,用戶可以打開抽屜式通知欄查看通知的詳細(xì)信息疮丛。 通知區(qū)域和抽屜式通知欄均是由系統(tǒng)控制的區(qū)域幔嫂,用戶可以隨時查看,通知分為正在進(jìn)行和普通通知誊薄,普通通知又分為可被清除按鈕清除和不可被清除按鈕清除履恩。為了引起用戶注意通知可以加入通知鈴聲、震動和閃燈呢蔫。
通知顧名思義就是應(yīng)用發(fā)出的用于提醒用戶的信息切心,每個應(yīng)用的通知都會顯示在通知欄上。比如一個新聞類應(yīng)用每天發(fā)一個當(dāng)天重要的新聞片吊,一個提醒類應(yīng)用發(fā)出一個提醒通知等等绽昏。
通知的屬性
通知包含以下常用屬性。
- 大圖標(biāo)
- 小圖標(biāo)
- 標(biāo)題
- ?詳細(xì)文本
- flags(通知位置)
- defaults(效果)
- contentIntent(點擊通知后如何跳轉(zhuǎn))
通知的位置
- FLAG_AUTO_CANCEL 該通知能被狀態(tài)欄的清除按鈕給清除掉
- FLAG_NO_CLEAR 該通知不能被狀態(tài)欄的清除按鈕給清除掉
- FLAG_ONGOING_EVENT 通知放置在正在運行
通知的效果
- DEFAULT_ALL 使用默認(rèn)效果
- DEFAULT_LIGHTS 默認(rèn)閃光
- DEFAULT_SOUND 默認(rèn)聲音(uri俏脊,指向路徑)
- DEFAULT_VIRATE 默認(rèn)震動(需要添加震動權(quán)限VIBRATE: android.permission.VIBRATE)
相關(guān)類
NotificationManager
NotificationManager是一個系統(tǒng)Service全谤,必須通過 getSystemService()方法來獲取,它是狀態(tài)欄通知的管理類,負(fù)責(zé)發(fā)送通知爷贫、清楚通知等认然。
Notification
具體的狀態(tài)欄通知對象补憾,可以設(shè)置圖標(biāo)、文字卷员、提示聲音余蟹、振動等參數(shù)。
PendingIntent
一個可以在滿足一定條件下執(zhí)行的Intent子刮。
NotificationCompat.Builder
Android3.0之后威酒,一般推薦使用NotificationCompat.Builder構(gòu)建。NOTE:此類創(chuàng)建Notification所用的是建造者模式挺峡。
RemoteViews
RemoteView描述一個view葵孤,而這個view是在另外一個進(jìn)程顯示的,在通知中用于自定義通知布局橱赠。NOTE:自定義通知布局的可用高度取決于通知視圖尤仍。普通視圖布局限制為 64 dp,擴展視圖布局限制為 256 dp狭姨。
TaskStackBuilder
Android通過TaskStackBuilder來實現(xiàn)導(dǎo)航宰啦。這個類是創(chuàng)建任務(wù)之間的導(dǎo)航堆棧,和按返回鍵返回上一個Activity的的堆棧是有區(qū)別的饼拍,NOTE:使用TaskStackBuilder會使得你之前的Activity都被殺死赡模。
使用場景
- 后臺服務(wù)定時啟動
- 升級提醒
- 后臺線程操作提醒
- 推送類通知(提醒點擊進(jìn)入相關(guān)界面)
- 多個同類提醒只加數(shù)量
說明
上面提到的場景我已經(jīng)寫好了例子放在github上,學(xué)習(xí)的朋友可以下載下來運行师抄。