Android基礎-------Android通知Notification

Android通知Notification

簡介:
android通知,是Android系統一個比較有特色的功能,當某個應用希望向用戶發送一些提示信息,而該程序又不在前臺運行的時候,這時候就需要用到通知,它會在狀態欄上方顯示通知圖標和一些提示文字
功能作用
1.顯示接收到短消息、即使消息等信息 (如QQ、微信、新浪、短信)
2.顯示客戶端的推送消息(如有新版本發佈,廣告,推薦新聞等)
3.顯示正在進行的事物(例如:後臺運行的程序)(如音樂播放器、版本更新時候的下載進度等)

學習思路
Notificaiton – service – BroadcastReceiver – Intent(flag、Action等屬性應用) – PendingIntent
一個Notificaiton通知的拓展使用就要涉及與4大組建的配合,所以學好整體的知識體系。


參考文檔及使用教程:
設計文檔 :
官方:http://developer.android.com/design/patterns/notifications.html
譯文:http://adchs.github.io/patterns/notifications.html
使用教程 :http://developer.android.com/training/notify-user/index.html
開發文檔 :http://developer.android.com/reference/android/app/Notification.html


1.前言

  • 1 .基本佈局
    這裏寫圖片描述

(1)普通視圖:
高度64dp

(2)大視圖的通知在展開前也顯示爲普通視圖

元素:
1. 標題 Title/Name
2. 大圖標 Icon/Photo
3. 內容文字
4. 內容信息 MESSAGE
5. 小圖標 Secondary Icon
6. 通知的時間 Timestamp,默認爲系統發出通知的時間,也可通過setWhen()來設置

  • 2.必要的類

狀態通知欄主要涉及到2個類: Notification 和 NotificationManager
Notification爲通知信息類,它裏面對應了通知欄的各個屬性
NotificationManager : 是狀態欄通知的管理類,負責發通知、清除通知等操作。

注意:NotificationManager 是一個系統Service,所以必須通過 getSystemService(NOTIFICATION_SERVICE)方法來獲取,方法如下

NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  

2.使用流程

  • 1.流程模塊

第一步:創建一個通知欄的Builder構造類 (Create a Notification Builder)
第二步:定義通知欄的Action (Define the Notification’s Action)
第三步:設置通知欄點擊事件 (Set the Notification’s Click Behavior)
第四步:通知 (Issue the Notification)

  • 2.代碼模塊

第一步:獲取狀態通知欄管理:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  

第二步:實例化通知欄構造器NotificationCompat.Builder:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);  

第三步:對Builder進行配置:

mBuilder.setContentTitle("測試標題")//設置通知欄標題  
    .setContentText("測試內容") /<span style="font-family:Arial;">/設置通知欄顯示內容</span>  
    .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) //設置通知欄點擊意圖  
//  .setNumber(number) //設置通知集合的數量  
    .setTicker("測試通知來啦") //通知首次出現在通知欄,帶上升動畫效果的  
    .setWhen(System.currentTimeMillis())//通知產生的時間,會在通知信息裏顯示,一般是系統獲取到的時間  
    .setPriority(Notification.PRIORITY_DEFAULT) //設置該通知優先級  
//  .setAutoCancel(true)//設置這個標誌當用戶單擊面板就可以讓通知將自動取消    
    .setOngoing(false)//ture,設置他爲一個正在進行的通知。他們通常是用來表示一個後臺任務,用戶積極參與(如播放音樂)或以某種方式正在等待,因此佔用設備(如一個文件下載,同步操作,主動網絡連接)  
    .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加聲音、閃燈和振動效果的最簡單、最一致的方式是使用當前的用戶默認設置,使用defaults屬性,可以組合  
    //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加聲音 // requires VIBRATE permission  
    .setSmallIcon(R.drawable.ic_launcher);//設置通知小ICON  

  • 3.對應的各個方法的屬性
    (1)方法:設置提醒標誌符Flags
    (2)方法:.setDefaults(int defaults) (NotificationCompat.Builder中的方法,用於提示)
    (3)方法:setVibrate(long[] pattern)
    (4)方法:.setLights(intledARGB ,intledOnMS ,intledOffMS )
    (5)方法:.setSound(Uri sound)
    (6)方法:.setPriority(int pri)
    (7)方法:setOngoing(boolean ongoing)
    (8)方法:setProgress(int max, int progress,boolean indeterminate)

  • 4.設置通知欄PendingIntent

1)什麼是PendingIntent
2)PendingIntent什麼用
3)相關屬性和方法

  • 5.發送通知請求

未完待續….

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章