android Notification介紹

来源:http://www.cnblogs.com/lyricgan88/archive/2016/12/15/3371311.html
-Advertisement-
Play Games

如果要添加一個Notification,可以按照以下幾個步驟 1:獲取NotificationManager: NotificationManager m_NotificationManager=(NotificationManager)this.getSystemService(NOTIFICAT ...


如果要添加一個Notification,可以按照以下幾個步驟

1:獲取NotificationManager:

NotificationManager m_NotificationManager=(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);

2:定義一個Notification:

  Notification  m_Notification=new Notification();

3:設置Notification的各種屬性:

 //設置通知在狀態欄顯示的圖標 m_Notification.icon=R.drawable.icon;                   

//當我們點擊通知時顯示的內容 m_Notification.tickerText="Button1 通知內容.....";                                 

通知時發出的預設聲音 m_Notification.defaults=Notification.DEFAULT_SOUND;

//設置通知顯示的參數

Intent   m_Intent=new Intent(NotificationDemo.this,DesActivity.class);        PendingIntent m_PendingIntent=PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0);

m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知",m_PendingIntent );

//這個可以理解為開始執行這個通知 m_NotificationManager.notify(0,m_Notification);

4:既然可以增加同樣我們也可以刪除。當然是只是刪除你自己增加的。

  m_NotificationManager.cancel(0);   

  這裡的0是一個ID號碼,和notify第一個參數0一樣。

這也就完成了,添加刪除工作。

 

NoticificationManager很容易可以放在狀態欄,也很容易實現從statusbar進入程式 中,  NoticificationManager中通過intent執行此程式的activity就可以了

NoticificationManager狀態欄操作

NotificationManager(通知管理器):  NotificationManager負責通知用戶事件的發生.  NotificationManager有三個公共方法:  1. cancel(int id) 取消以前顯示的一個通知.假如是一個短暫的通知,試圖將隱藏,假如是一個持久的通知,將從狀態條中移走.  2. cancelAll() 取消以前顯示的所有通知.  3. notify(int id,  Notification notification) 把通知持久的發送到狀態條上.

//初始化NotificationManager:  NotificationManager nm =        (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

Notification代表著一個通知.  Notification的屬性:  audioStreamType 當聲音響起時,所用的音頻流的類型  contentIntent 當通知條目被點擊,就執行這個被設置的Intent.  contentView 當通知被顯示在狀態條上的時候,同時這個被設置的視圖被顯示.  defaults 指定哪個值要被設置成預設的.  deleteIntent 當用戶點擊"Clear All Notifications"按鈕區刪除所有的通知的時候,這個被設置的Intent被執行.  icon 狀態條所用的圖片.  iconLevel 假如狀態條的圖片有幾個級別,就設置這裡.  ledARGB LED燈的顏色.  ledOffMS LED關閉時的閃光時間(以毫秒計算)  ledOnMS LED開始時的閃光時間(以毫秒計算)  number 這個通知代表事件的號碼  sound 通知的聲音  tickerText 通知被顯示在狀態條時,所顯示的信息  vibrate 振動模式.  when 通知的時間戳.

將Notification發送到狀態條上:  Notification notification = new Notification();  Notification的設置過程……..  nm.notify(0, notification);   //發送到狀態條上

 

------------------------------------------------------------------------------------------------------------

Notification提供了豐富的手機提示方式:

a)在狀態欄(Status Bar)顯示的通知文本提示,如:

notification.tickerText = "hello";

 

b)發出提示音,如:

notification.defaults = Notification.DEFAULT_SOUND;

notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");

notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

 

c)手機振動,如:

notification.defaults = Notification.DEFAULT_VIBRATE;

long[] vibrate = {0,100,200,300};

notification.vibrate = vibrate;

 

d)LED燈閃爍,如:

notification.defaults = Notification.DEFAULT_LIGHTS;

notification.ledARGB = 0xff00ff00;

notification.ledOnMS = 300;

notification.ledOffMS = 1000;

notification.flags = Notification.FLAG_SHOW_LIGHTS;

4)發送通知:

private static final int ID_NOTIFICATION = 1;

mNotificationManager.notify(ID_NOTIFICATION, notification);


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一種: function Person() { this.username = new Array(); this.password = "123"; } Person.prototype.getInfo = function() { alert(this.username + ", " + th ...
  • ie6對hover相容性問題的解決: 1,在body里添加以下樣式: behavior:url(../scripts/csshover.htc); csshover.htc可直接在網上下載 2,js解決 判斷是否為ie6 window.onload=function(){ var isIE=!!wi ...
  • 效果圖: 點擊菜單 中英文切換 css樣式: .top-nav { font-size: 12px; font-weight: bold; list-style: none; border-bottom: 8px solid #DC4E1B; overflow: auto; //去浮動,使下級的浮動 ...
  • 用 :empty 區分空元素 相容性:不支持 IE8 Demo 假如我們有以上列表: <div class="item">a</div> <div class="item">b</div> <div class="item"></div> 我們希望可以對空元素和非空元素區別處理,那麼有兩種方案。 用 ...
  • window.screen.availWidth 返回當前屏幕寬度(空白空間) window.screen.availHeight 返回當前屏幕高度(空白空間) window.screen.width 返回當前屏幕寬度(解析度值) window.screen.height 返回當前屏幕高度(解析度值 ...
  • 1 「喂飽」用戶的三個方法 最近,我看到有創業者開始為自己的用戶增長緩慢而發愁。 實際上,如果將自己的產品當成精心為用戶烹調的牛排,用戶吃一口就放下了餐具。這是火候的問題嗎?是調料問題嗎?還是擺盤裝飾的問題?......也許都不是,這個時候你更應該問自己一個問題:現在用戶是否正處於饑餓的狀態? 那飢 ...
  • 作者講解在Kotlin中Android擴展是如何替代 findViewById 的。 ...
  • fragment是Activity中用戶界面的一個行為或者是一部分。你可以在一個單獨的Activity上把多個Fragment組合成為一個多區域的UI,並且可以在多個Activity中再使用。你可以認為fragment是activity的一個模塊零件,它有自己的生命周期,接收它自己的輸入事件,並且可 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...