Android 中通知的基本使用

通知--一般當我在手記下拉的時候會發現一排信息提示(天氣情況,qq消息,UC推薦,58推薦等等),這些就是通知。


通知分為三種:普通廣播 ?自定義廣播 ? 大視圖廣播。

普通廣播的創建:

通知的內容和屬性:NotificationCompat內部的builder類進行通知的內容進行設置,各種set方法;

通知的屬性:通過Notification實例的falg設置通知屬性;

通知實例的獲得:通過Builder類的builder()方法創建;

通知的發送:通過notificationManger的notify()方法發送通知;

普通通知的創建發送以及方法講解:

1.創建Notification的builder類

NotificationCompat.Builder? builder=new NotificationCompat.Builder(this);

2.利用builder實例設置Notification屬性:

//設置通知標題欄內容

builder.setContentTitle("通知的標題")

//設置通知詳細信息欄內容

.setContentText("通知的內容")

//設置大小圖標會在下main繼續講

.setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.aa))

.setTicker("狀態欄中提示內容")

//設置通知欄點擊執行的意圖 pendingIntent(也就是點擊完成跳轉);

.setContentIntent(pendingIntent)

//設置通知集合的數量(沒用到過)

.setNumber(6)

//通知產生的時間,會在通知信息里顯示,一般是系統獲取到的時間

//如果不寫,默認為通知發出時系統的時間;

.setWhen(System.currentTimeMillis())

//設置該通知優先級(在廣播中用過這個屬性)

.setPriority(Notification.PRIORITY_DEFAULT)

//設置這個標志當用戶單擊面板就可以讓通知將自動取消

.setAutoCancel(false)

//點擊或則側滑通知,通知不會消失;利用它設置他為一個正在進行的通知。他們通常是用來表示一個后臺任務,用戶積極參與(如播放音樂)或以某種方式正在等待,因此占用設備(如一個文件下載,同步操作,主動網絡連接)

.setOngoing(true);

//提示模式

.setDefaults(Notification.DEFAULT_VIBRATE)

方法詳解:

.setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.aa))

.setTicker("狀態欄中提示內容")

第一種:當只設置了SmallIcon沒有設置LargeIcon的時候:SmallIcon的圖標將會出現在LargeIcon的位置,而小圖標位置將不會又圖標。

第二中:當既有SmallIcon又有LargeIcon的時候,LargeIcon將會出現在LargeIcon位置,SmallIcon也會出現在SmallIcon的位置;

setTicker()是在通知發出的時候,在狀態欄彈出的提示內容(彈出提示的內容又小圖標和Ticker方法中的內容)

注意:小圖標必須有,否則將無法顯示通知;

.setPriority(Notification.PRIORITY_DEFAULT)//設置通知的優先級別

Notification.PRIORITY_DEFAULT ? ? 默認

Notification.PRIORITY_HIGH ? ? ? ? ? ? 高

Notification.PRIORITY_LOW ? ? ? ? ? ? ?低?

Notification.PRIORITY_MAX ? ? ? ? ? ? ?最高

Notification.PRIORITY_MIN ? ? ? ? ? ? ? 最低

.setDefaults(int defaults)(需要 VIBRATE permission) ;

功能:向通知添加聲音、閃燈和振動效果的最簡單、使用默認(defaults)屬性,可以組合多個屬性

對應屬性:

Notification.DEFAULT_VIBRATE ? ?//添加默認震動提醒 ?

Notification.DEFAULT_SOUND ? ?//?添加默認聲音提醒

Notification.DEFAULT_LIGHTS//?添加默認三色燈提醒

Notification.DEFAULT_ALL//?添加默認以上3種全部提醒


setVibrate(long[] pattern)設置自定義震動模式

//延遲0ms,然后振動200ms,在延遲200ms,接著在振動300ms。

.setVibrate(new long[]?{0,200,200,300});


//設定自定義燈光

.setLights(int RGB,int onTime,int lowLight)

參數說明:

RGB 表示燈光顏色、 onTime亮持續時間、lowLight暗的時間。

注意:只有在設置了標志符Flags為Notification.FLAG_SHOW_LIGHTS的時候,才支持三色燈提醒。

這邊的顏色跟設備有關,不是所有的顏色都可以,要看具體設備。


設定自定義音樂

setSound(Uri?music)

.setSound(Uri.parse("file:///sdcard/xx/xx.mp3"))


進度條的說明:

setProgress(int ?max ?,int ?value ?,boolean ?sure);

參數說明:

max---進度條最大值;

value---進度條當前值;

sure----進度條進度是否確定;

? ? ? ? ? ? true為進度條不確定,max與value就不會在進度條中顯示;

? ? ? ? ? ? ?false進度條確定,max與value正常顯示

進度條取消:setProgress(0, 0, false)

方法版本問題:4.0后才可以在buidler中調用setProgress()方法;


//獲得Notification實例

NotificationCompat ?notificaton=builder.buidler();

//通過Notification的flag設置屬性;

設置屬性代碼:

notification.flags = Notification.FLAG_AUTO_CANCEL;

提醒標志符成員:

Notification.FLAG_SHOW_LIGHTS ? ? ?//三色燈提醒,在使用三色燈提醒時候必須加該標志符

Notification.FLAG_ONGOING_EVENT ? //發起正在運行事件(活動中)

Notification.FLAG_INSISTENT//讓聲音、振動無限循環,直到用戶響應(取消或者打開)

Notification.FLAG_ONLY_ALERT_ONCE//發起Notification后,鈴聲和震動均只執行一次

Notification.FLAG_AUTO_CANCEL ? ? ?//用戶單擊通知后自動消失

Notification.FLAG_NO_CLEAR ? ? ? ? //只有全部清除時,Notification才會清除,不清楚該通知(QQ的通知無法清除,就是用的這個)

Notification.FLAG_FOREGROUND_SERVICE ? ?//表示正在運行的服務



自定以通知的基本使用:

自定布局的創建:

RemoteViews mRemoteViews = new RemoteViews(String packageName, int layoutId);

參數說明:packageName :報名,通過getPackageName()

? ? ? ? ? ? ? ? ? layoutId:加載自定義布局ID;


設置自定義布局的屬性:

設置的圖片屬性

mRemoteViews.setImageViewResource(int viewId, int srcId);

參數說明 ? viewId ?為自定義布局中,Button等布局的ID;

? ? ? ? ? ? ? ? ? srcId ?為需要設置圖片的ID;

設置點擊意圖:

mRemoteViews.setOnClickPendingIntent(int viewId,PendingIntent pendingIntent);

參數說明:viewId? ? 為自定義布局中,Button等布局的ID;

? ? ? ? ? ? ? ? ? pendingIntent ? 為點擊相應按鈕需要執行的意圖;

添加自定義布局:

mBuilder.setContent(mRemoteViews)

NotificationManager的發送,更新,刪除

notificationManager.cancel(int ID);

參數說名:ID為發送通知的時候設置的ID;取消該ID;

notify(int id, Notification notification); // 將通知加入狀態欄,,標記為id

參數說明:id相當于notification的一一對應標志;

// 在Android進行通知處理,首先需要重系統哪里獲得通知管理器NotificationManager,它是一個系統Service。

NotificationManager?manager?=?(NotificationManager)?getSystemService(Context.NOTIFICATION_SERVICE);

還有大圖風格---尚未完成

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容