notification 全解和 api 的二次封裝

水牛發表於2017-02-14

分類

notification 全解和 api 的二次封裝
Paste_Image.png

相關屬性

顯示相關

notification 全解和 api 的二次封裝
Paste_Image.png

識別符號flag

notification 全解和 api 的二次封裝
Paste_Image.png

優先順序

notification 全解和 api 的二次封裝
Paste_Image.png

提醒方式

notification 全解和 api 的二次封裝
Paste_Image.png

事件(PeddingIntent)

notification 全解和 api 的二次封裝
Paste_Image.png

返回activity棧

參考gold.xitu.io/post/586326…

7.0新功能

notification 全解和 api 的二次封裝
Paste_Image.png

二次封裝後的api

第一步:

buildSimple(int id,int icon,CharSequence contentTitle ,CharSequence contentText,PendingIntent contentIntent)

buildProgress(int id,int icon,CharSequence contentTitle,int progress,int max)

 buildBigPic(int id,int icon,CharSequence contentTitle,CharSequence contentText,CharSequence summaryText)

 buildBigText(int id,int icon,CharSequence contentTitle,CharSequence contentText)

 buildMailBox(int id,int icon,CharSequence contentTitle)

// buildMedia(int id,int icon,CharSequence contentTitle,CharSequence contentText)//todo 複製程式碼

第二步:其他可選設定

設定三類intent:
setContentIntent(PendingIntent contentIntent)
setDeleteIntent(PendingIntent deleteIntent)
setFullScreenIntent(PendingIntent fullscreenIntent)

新增按鈕:
addBtn(int icon,CharSequence text,PendingIntent pendingIntent)
開啟head-up模式
setHeadup()
//提示語,預設為"您有新的訊息"
setTicker(CharSequence ticker)
//大小圖示
setSamllIcon(int smallIcon)
setBigIcon(int bigIcon)
//優先順序,預設為default
setPriority(int priority)
//設定成為不可刪除
setOnGoing()
//提示模式:預設情況下只有呼吸燈提示
setAction(boolean sound, boolean vibrate, boolean lights)
//設定為前臺服務的notification
setForgroundService() 
//鎖屏顯示的控制(預設不顯示)
setLockScreenVisiablity(int lockScreenVisiablity)
  VISIBILITY_PRIVATE : 顯示基本資訊,如通知的圖示,但隱藏通知的全部內容 
  VISIBILITY_PUBLIC : 顯示通知的全部內容 
  VISIBILITY_SECRET : 不顯示任何內容,包括圖示複製程式碼

第三步

.show()複製程式碼

取消

cancel(int id)
cancelAll()複製程式碼

示例程式碼

 NotifyUtil.buildSimple(100,R.mipmap.ic_launcher,"標題標題標題圖表題滴滴滴","哈哈哈哈哈哈哈呼呼呼呼呼呼",null)
                        .setHeadup()
                        .addBtn(R.mipmap.ic_launcher,"left", NotifyUtil.buildIntent(MainActivity.class))
                        .addBtn(R.mipmap.ic_launcher,"rightdd", NotifyUtil.buildIntent(MainActivity.class))
                        .show();

NotifyUtil.buildBigPic(101,R.drawable.timg,"title","content","summmaujds")
                        .setPicRes(R.drawable.timg2)
                        .show();

 NotifyUtil.buildProgress(102,R.mipmap.ic_launcher,"正在下載",progresses,100).show();

 NotifyUtil.buildMailBox(104,R.drawable.timg,"title")
                        .addMsg("11111111111")
                        .addMsg("33333333333333")
                        .addMsg("6666666666666666666")
                        .show();

NotifyUtil.buildBigText(103,R.drawable.timg,"jtitle","我學習最快的方法就是先看效果," +
                        "再想原理最後,將它實現。效果是最直觀的,而且能夠有效的判斷所學的東西是不是想要的。" +
                        "現在網上的資料實在太雜,很多花了很多時間去研究,最後發現坑爹了,不是想要的。" +
                        "這篇文章首先會介紹能實現的主要功能。然後是解決問題的基本思想,接著是具體的一些實現。" +
                        "本篇文章和以前的風格有所不同,以前都是文章中程式碼比較少,附上demo,但發現這樣可能不方便讀者," +
                        "所以採用了實現效果以及主要程式碼的形式。這種方式現在還在測試階段,如果覺得以前的模式比較" +
                        "好或者其他更好的方式的話可以給我留言,以後的文章會做出相應的調整 。").show();複製程式碼

程式碼

github.com/hss01248/No…

感謝

詳細分類: gold.xitu.io/post/586326…
7.0新特性:www.jianshu.com/p/33e84d5cb…
每種型別都有很全的示例程式碼:blog.csdn.net/w804518214/…

相關文章