Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android中的消息通知(NotificationManager和Notification),android通知欄消息

Android中的消息通知(NotificationManager和Notification),android通知欄消息

編輯:關於android開發

Android中的消息通知(NotificationManager和Notification),android通知欄消息


 

下面來談談notification,這個notification一般用在電話,短 信,郵件,鬧鐘鈴聲,在手機的狀態欄上就會出現一個小圖標,提示用戶處理這個通知,這時手從上方滑動狀態欄就可以展開並處理這個快訊。已添加的 Notification.Builder,使其更容易構建通知。notification是一種讓你的應用程序在沒有開啟情況下或在後台運行警示用戶。 它是看不見的程序組件(Broadcast Receiver,Service和不活躍的Activity)警示用戶有需要注意的事件發生的最好途徑。

    先來區分以下狀態欄和狀態條的區別:

    1、狀態條就是手機屏幕最上方的一個條形狀的區域;

          在狀態條有好多信息量:比如usb連接圖標,手機信號圖標,電池電量圖標,時間圖標等等;

    2、狀態欄就是手從狀態條滑下來的可以伸縮的view;

          在狀態欄中一般有兩類(使用FLAG_標記):

          (1)正在進行的程序;

          (2)是通知事件;

 

     快速創建一個Notification的步驟簡單可以分為以下四步:

第一步:通過getSystemService()方法得到NotificationManager對象;

1.nManager = (NotificationManager) this.getSystemService(service);

 

第二步:對Notification的一些屬性進行設置比如:內容,圖標,標題,相應notification的動作進行處理等等;

 

01.notification.icon = R.drawable.ic_launcher;// 設置通知的圖標  02.notification.tickerText = tickerText; // 顯示在狀態欄中的文字  03.notification.when = when; // 設置來通知時的時間  04.notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定義聲音  05.notification.flags = Notification.FLAG_NO_CLEAR; // 點擊清除按鈕時就會清除消息通知,但是點擊通知欄的通知時不會消失  06.notification.flags = Notification.FLAG_ONGOING_EVENT; // 點擊清除按鈕不會清除消息通知,可以用來表示在正在運行  07.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 點擊清除按鈕或點擊通知後會自動消失  08.notification.flags |= Notification.FLAG_INSISTENT; // 一直進行,比如音樂一直播放,知道用戶響應  09.notification.defaults = Notification.DEFAULT_SOUND; // 調用系統自帶聲音  10.notification.defaults = Notification.DEFAULT_VIBRATE;// 設置默認震動  11.notification.defaults = Notification.DEFAULT_ALL; // 設置鈴聲震動  12.notification.defaults = Notification.DEFAULT_ALL; // 把所有的屬性設置成默認

 

第三步:通過NotificationManager對象的notify()方法來執行一個notification的消息;

1.nManager.notify(ID, notification);

 

第四步:通過NotificationManager對象的cancel()方法來取消一個notificatioin的消息;

1.nManager.cancel(ID);

 

 Notification.build構造Notification方法介紹:   

     void setLatestEventInfo(Context context , CharSequencecontentTitle,CharSequence  contentText,PendingIntent contentIntent)  

        功能: 顯示在拉伸狀態欄中的Notification屬性,點擊後將發送PendingIntent對象

        參數:    context              上下文環境

                      contentTitle       狀態欄中的大標題

                      contentText       狀態欄中的小標題

                      contentIntent    點擊後將發送PendingIntent對象

      說明:要是在Notification中加入圖標,在狀態欄和狀態條中顯示圖標一定要用這個方法,否則報錯!

 

NotificationManager類的常用方法:

             通過獲取系統服務來獲取該對象:           

                NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;

 

      NotificationManager常用方法介紹:

               public  void cancelAll()                                                          移除所有通知 (只是針對當前Context下的Notification)

               public  void cancel(int id)                                                      移除標記為id的通知 (只是針對當前Context下的所有Notification)

               public  void notify(String tag ,int id, Notification notification) 將通知加入狀態欄, 標簽為tag,標記為id

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

01.package com.sun.alex;  02.  03.import android.app.Activity;  04.import android.app.Notification;  05.import android.app.NotificationManager;  06.import android.app.PendingIntent;  07.import android.content.Intent;  08.import android.net.Uri;  09.import android.os.Bundle;  10.import android.view.View;  11.import android.view.View.OnClickListener;  12.import android.widget.Button;  13.  14.public class NotificationActivity extends Activity {  15.  16.private Button sendBtn, cancelBtn;  17.private Notification notification;  18.private NotificationManager nManager;  19.private Intent intent;  20.private PendingIntent pIntent;  21.// Notification的標示ID  22.private static final int ID = 1 23.  24.@Override  25.public void onCreate(Bundle savedInstanceState) {  26.super.onCreate(savedInstanceState);  27.setContentView(R.layout.main);  28.  29.sendBtn = (Button) this.findViewById(R.id.send);  30.cancelBtn = (Button) this.findViewById(R.id.cancel);  31.  32.String service = NOTIFICATION_SERVICE;  33.nManager = (NotificationManager) this.getSystemService(service);  34.  35.notification = new Notification();  36.String tickerText = "測試Notifaction"; // 通知提示  37.// 顯示時間  38.long when = System.currentTimeMillis();  39.  40.notification.icon = R.drawable.ic_launcher;// 設置通知的圖標  41.notification.tickerText = tickerText; // 顯示在狀態欄中的文字  42.notification.when = when; // 設置來通知時的時間  43.notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定義聲音  44.notification.flags = Notification.FLAG_NO_CLEAR; // 點擊清除按鈕時就會清除消息通知,但是點擊通知欄的通知時不會消失  45.notification.flags = Notification.FLAG_ONGOING_EVENT; // 點擊清除按鈕不會清除消息通知,可以用來表示在正在運行  46.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 點擊清除按鈕或點擊通知後會自動消失  47.notification.flags |= Notification.FLAG_INSISTENT; // 一直進行,比如音樂一直播放,知道用戶響應  48.notification.defaults = Notification.DEFAULT_SOUND; // 調用系統自帶聲音  49.notification.defaults = Notification.DEFAULT_SOUND;// 設置默認鈴聲  50.notification.defaults = Notification.DEFAULT_VIBRATE;// 設置默認震動  51.notification.defaults = Notification.DEFAULT_ALL; // 設置鈴聲震動  52.notification.defaults = Notification.DEFAULT_ALL; // 把所有的屬性設置成默認  53.  54.sendBtn.setOnClickListener(sendClickListener);  55.cancelBtn.setOnClickListener(cancelClickListener);  56. 57.  58.private OnClickListener sendClickListener = new OnClickListener() {  59.@Override  60.public void onClick(View v) {  61.// 單擊通知後會跳轉到NotificationResult類  62.intent = new Intent(NotificationActivity.this 63.NotificationResult.class);  64.// 獲取PendingIntent,點擊時發送該Intent  65.pIntent = PendingIntent.getActivity(NotificationActivity.this, 0 66.intent, 0);  67.// 設置通知的標題和內容  68.notification.setLatestEventInfo(NotificationActivity.this, "標題" 69."內容", pIntent);  70.// 發出通知  71.nManager.notify(ID, notification);  72. 73.};  74.  75.private OnClickListener cancelClickListener = new OnClickListener() {  76.@Override  77.public void onClick(View v) {  78.// 取消通知  79.nManager.cancel(ID);  80. 81.};  82.} 源碼分享:http://www.jinhusns.com/Products/Download/?type=xcj

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved