Notifiaction是顯示在手機狀態欄的通知——手機狀態欄位於手機屏幕的最上方,Notifiaction表明的是一種具備全局效果的通知,程序通常經過NotificationManager服務來發送Notification.html
NotificationManager是一個重要的系統服務,該API位於應用程序框架層,應用程序可經過NotificationManager向系統發送全局通知。java
Android3.0增長Notification.Builder類,經過該類容許開發者更輕鬆地建立Notification對象。android
下面經過一個實例來講明:app
main.xml框架
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="發送Notification" android:onClick="send" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="刪除Notification" android:onClick="del" /> </LinearLayout>
package org.crazyit.ui; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; public class NotificationTest extends Activity { static final int NOTIFICATION_ID = 0x123; NotificationManager nm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 獲取系統的NotificationManager服務 nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); } // 爲發送通知的按鈕的點擊事件定義事件處理方法 public void send(View source) { // 建立一個啓動其餘Activity的Intent Intent intent = new Intent(NotificationTest.this , OtherActivity.class); PendingIntent pi = PendingIntent.getActivity( NotificationTest.this, 0, intent, 0); Notification notify = new Notification.Builder(this) // 設置打開該通知,該通知自動消失 .setAutoCancel(true) // 設置顯示在狀態欄的通知提示信息 .setTicker("有新消息") // 設置通知的圖標 .setSmallIcon(R.drawable.notify) // 設置通知內容的標題 .setContentTitle("一條新通知") // 設置通知內容 .setContentText("恭喜你,您加薪了,工資增長20%!") // // 設置使用系統默認的聲音、默認LED燈 // .setDefaults(Notification.DEFAULT_SOUND // |Notification.DEFAULT_LIGHTS) // 設置通知的自定義聲音 .setSound(Uri.parse("android.resource://org.crazyit.ui/" + R.raw.msg)) .setWhen(System.currentTimeMillis()) // 設改通知將要啓動程序的Intent .setContentIntent(pi).build(); // 發送通知 nm.notify(NOTIFICATION_ID, notify); } // 爲刪除通知的按鈕的點擊事件定義事件處理方法 public void del(View v) { // 取消通知 nm.cancel(NOTIFICATION_ID); } }
運行結果:ide