Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android官方開發文檔Training系列課程中文版:通知用戶之構建通知

Android官方開發文檔Training系列課程中文版:通知用戶之構建通知

編輯:關於Android編程

引言

通知用於在有事件發生時,將事情以更便捷的方式展示給用戶。用戶可以在他們方便的時候直接與通知交互。

Notifications design guide課程講述了如何設計有效的通知以及何時去使用它們。這節課將會學習如何實現通用的通知設計。

構建通知

這節課的實現主要基於NotificationCompat.Builder類,NotificationCompat.Builder類屬於支持庫。開發者應該使用NotificationCompat及其子類,特別是NotificationCompat.Builder,以便支持更寬泛的平台。

創建通知構建器

當創建通知時,需要指定通知的UI內容以及它的點擊行為。一個Builder對象至少要包含以下條件:

一個小圖標,通過setSmallIcon()方法設置。 通知標題,通過setContentTitle()方法設置。 詳細文本,通過setContentText()方法設置。

比如:

NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.notification_icon)
    .setContentTitle("My notification")
    .setContentText("Hello World!");

定義通知的行為

創建通知時,應當至少為通知添加一個行為。這個行為會將用戶帶到Activity中,這個Activity中詳細的展示了發生了什麼事情,或者可以使用戶采取進一步的行動。在通知內部,行為由PendingIntent所包含的Intent指定,它可以用來啟動Activity.

如何構造PendingIntent取決於要啟動的Activity的類型。當由通知啟動Activity時,開發者必須考慮用戶所期待的導航體驗。在下面的代碼中,點擊通知會啟動一個新的Activity,這個Activity繼承了通知所產生的行為習慣。在這種情況下不需要創建人為的回退棧。

Intent resultIntent = new Intent(this, ResultActivity.class);
...
// Because clicking the notification opens a new ("special") activity, there's
// no need to create an artificial back stack.
PendingIntent resultPendingIntent =
    PendingIntent.getActivity(
    this,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT
);

設置通知的點擊行為

為了使PendingIntent與手勢產生關聯,需要調用NotificationCompat.Builder的對應方法。比如要啟動一個Activity,則調用setContentIntent()方法添加PendingIntent即可。

發布通知

發布通知需要執行以下步驟:

獲得NotificationManager的實例。 使用notify()方法發布通知。在調用notify()方法時需要指定通知的ID,這個ID用於通知的稍後更新。 調用build()方法,它會返回一個Notification對象。
NotificationCompat.Builder mBuilder;
...
// Sets an ID for the notification
int mNotificationId = 001;
// Gets an instance of the NotificationManager service
NotificationManager mNotifyMgr = 
        (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Builds the notification and issues it.
mNotifyMgr.notify(mNotificationId, mBuilder.build());

原文地址:http://android.xsoftlab.net/training/notify-user/index.html

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