鍍金池/ 教程/ Android/ Android通知
Android 應用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍牙)實例
Android RelativeLayout
Android最佳實踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android通知

Android的Toast 類提供了一個方便的方式來顯示用戶的警告信息,但這些警告不是持久性的,這意味著警告閃爍在屏幕上幾秒鐘后就消失了。

對于特別重要的要提供給用戶的消息,需要有更持久性的方法。 Anotification是一種消息可以顯示在設(shè)備的頂部的通知欄或狀態(tài)欄中。

Android Notification Bar

要看到通知的細節(jié),選擇圖標顯示通知抽屜里有詳細的有關(guān)通知。模擬器虛擬設(shè)備工作,按一下向下拖動狀態(tài)欄將它展開,將顯示詳細信息如下。這將是64 sp高的普通視圖。

Android Notification Detail

上述擴大的形式可以放到一個大的視圖,有關(guān)通知的更多細節(jié)??梢蕴砑幼疃嗔械耐ㄖ?。下面的截圖顯示了這樣的通知。

Android Notification Big View

創(chuàng)建和發(fā)送通知

使用簡單的方法來創(chuàng)建一個通知。按照以下步驟在應用程序創(chuàng)建一個通知:

第1步 - 創(chuàng)建通知生成器

作為第一步創(chuàng)建一個通知構(gòu)造器,使用NotificationCompat.Builder.build()。使用通知Builder來設(shè)置屬性,如各種通知其小型和大型圖標,標題,優(yōu)先級等。

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

第2步 - 設(shè)置通知屬性

在創(chuàng)建Builder對象之后,可以按要求使用生成器創(chuàng)建通知對象。這是強制性的,以至少下列設(shè)置:

  • 一個小圖標,由 setSmallIcon() 設(shè)置

  • 一個標題,由setContentTitle() 設(shè)置

  • 詳細內(nèi)容由 setContentText() 設(shè)置

mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle("Notification Alert, Click Me!");
mBuilder.setContentText("Hi, This is Android Notification Detail!");

通知有很多可選的屬性,可以設(shè)置。要更多地了解它們,請參考 NotificationCompat.Builder 文檔。

第3步 - 動作附加

這是一個可選的部分,并要求如果要附加一個動作的通知。動作可以讓用戶直接從通知到應用程序中的活動,在那里它們可以在一個或多個事件,或做進一步的工作。

動作定義通過PendingIntent 在應用程序中的活動意圖。要關(guān)聯(lián)PendingIntent 手勢請調(diào)用適當NotificationCompat.Builder 方法。例如,如果想開始活動,當用戶點擊通知文本通知抽屜 PendingIntent 調(diào)用setContentIntent()。

PendingIntent對象表示應用程序的執(zhí)行一個動作,在以后的時間里查看應用程序是否正在運行。

堆棧builder對象將包含一個人工后退堆?;顒?。確保向后導航的活動在應用程序的主屏幕。

Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);

// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(
            0,
            PendingIntent.FLAG_UPDATE_CURRENT
        );
mBuilder.setContentIntent(resultPendingIntent);

第4步 - 發(fā)出通知

最后,調(diào)用NotificationManager.notify() 發(fā)送通知,通知對象傳遞到系統(tǒng)。通知之前,確保調(diào)用NotificationCompat.Builder.build()方法生成器對象。這種方法結(jié)合了所有的選擇,設(shè)置并返回一個新的Notificationobject。

NotificationManager mNotificationManager =
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
// notificationID allows you to update the notification later on.
mNotificationManager.notify(notificationID, mBuilder.build());

NotificationCompat.Builder類

NotificationCompat.Builder類可以更容易控制標志,以及幫助構(gòu)建典型通知布局。以下是 NotificationCompat.Builder類的一些重要的和最常用的方法的一部分。

S.N. 常量& 描述
1 Notification build() 
結(jié)合所有已設(shè)置的選項,并返回一個新的 Notification 對象
2 NotificationCompat.Builder setAutoCancel (boolean autoCancel) 
設(shè)置此標志將使它以便當用戶點擊它在面板中的通知被自動取消
3 NotificationCompat.Builder setContent (RemoteViews views) 
提供定制RemoteViews使用來代替標準之一
4 NotificationCompat.Builder setContentInfo (CharSequence info) 
設(shè)置大文本的通知的右側(cè)
5 NotificationCompat.Builder setContentIntent (PendingIntent intent) 
提供一個PendingIntent通知被點擊時發(fā)出
6 NotificationCompat.Builder setContentText (CharSequence text) 
設(shè)置通知的文本(第二行),在一個標準的通知
7 NotificationCompat.Builder setContentTitle (CharSequence title) 
設(shè)置通知的文本(第一行),在一個標準的通知
8 NotificationCompat.Builder setDefaults (int defaults) 
設(shè)置將要使用的默認通知選項
9 NotificationCompat.Builder setLargeIcon (Bitmap icon) 
設(shè)置顯示在自動收報機和通知大圖標
10 NotificationCompat.Builder setNumber (int number) 
在通知的右側(cè)設(shè)置大的數(shù)字
11 NotificationCompat.Builder setOngoing (boolean ongoing) 
設(shè)置這是否是一個持續(xù)的通知
12 NotificationCompat.Builder setSmallIcon (int icon) 
設(shè)置小圖標在通知使用布局
13 NotificationCompat.Builder setStyle (NotificationCompat.Style style) 
在構(gòu)建時應用添加豐富的通知樣式
14 NotificationCompat.Builder setTicker (CharSequence tickerText) 
設(shè)置在第一個通知到達時顯示在狀態(tài)欄中的文本
15 NotificationCompat.Builder setVibrate (long[] pattern) 
設(shè)置振動模式的使用
16 NotificationCompat.Builder setWhen (long when) 
設(shè)置該事件發(fā)生的時間。在面板的通知是由這個時間進行排序

示例

以下示例顯示 Android 的通知功能,NotificationCompat.Builder類已在Android4.1中引入。

步驟 描述
1 使用Android Studio創(chuàng)建一個Android應用程序,并將它命名為:NotificationDemounder。在創(chuàng)建這個項目時確保目標SDK和編譯在Android SDK的最新版本或更高級別的API。
2 修改 src/MainActivity.java 文件,并添加定義三種方法startNotification(),cancelNotification()和updateNotification(),以涵蓋與Android的通知的最大功能的代碼。
3 創(chuàng)建一個新的src/NotificationView.java,這將被用于顯示新的布局作為新的活動將被啟動的一部分,當用戶將點擊通知
4 復制圖片woman.png在RES/ drawable-*文件夾,這個圖片將被用作通知圖標??梢允褂玫那闆r下,要為他們提供了不同的設(shè)備有不同的分辨率的圖片
5 修改布局XML文件 res/layout/activity_main.xml 添加三個按鈕的線性布局
6 創(chuàng)建一個新的布局XML文件 res/layout/notification.xml。這將被用來作為布局文件為新的活動,將啟動時用戶將點擊任何通知
7 修改 res/values/strings.xml  中定義所需的恒定值
8 運行該應用程序時啟動Android模擬器并驗證應用程序所做的修改結(jié)果

以下是修改主要活動文件src/com.yiibai.notificationdemo/MainActivity.java 的內(nèi)容。這個文件可以包括每個生命周期基本方法。

package com.example.notificationdemo;

import android.os.Bundle;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class上一篇:Android圖片切換下一篇:Android音頻管理器實例