鍍金池/ 教程/ Android/ Android通知
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實(shí)例
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登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android通知

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

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

Android Notification Bar

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

Android Notification Detail

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

Android Notification Big View

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

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

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

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

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

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

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

  • 一個(gè)小圖標(biāo),由 setSmallIcon() 設(shè)置

  • 一個(gè)標(biāo)題,由setContentTitle() 設(shè)置

  • 詳細(xì)內(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步 - 動作附加

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

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

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

堆棧builder對象將包含一個(gè)人工后退堆棧活動。確保向后導(dǎo)航的活動在應(yīng)用程序的主屏幕。

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è)置并返回一個(gè)新的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類可以更容易控制標(biāo)志,以及幫助構(gòu)建典型通知布局。以下是 NotificationCompat.Builder類的一些重要的和最常用的方法的一部分。

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

示例

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

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

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

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音頻管理器實(shí)例